Мой пользовательский элемент управления - это кадр , который был изменен для поддержки связываемого свойства FrameID , которое пользователь библиотеки будет определять как enum в клиентском XAML, который они разрабатывают. Как показано ниже, свойство FrameID либо "IS", либо "не" установлен.
...
...
< /code>
Основная задача достоверно обнаруживает, не произошла ли назначение свойств < /em>. < /p>
контекст: это часть структуры, которая поддерживает «Нет или один» неназванный кадр в области выполнения. [b] Мой вопрос: [/b] - это конструктор и инициализатор объекта, гарантированно выполняемые последовательно без перерыва? Потому что это выглядит таким образом , и я хочу избежать «магической задержки», которая может достаточное время для завершения операции.
То, что я делал, публикую в конце очереди пользовательского интерфейса. Он ведет себя точно так же, как я ожидаю, что говорит о том, что поток не отказывается между выполнением конструктора и инициатором объекта, применяющим значения свойства. Что мне не ясно, так это то, вводит ли инициализация на основе связывания неопределенность, или есть другие случаи, когда мое предположение может потерпеть неудачу. < /P>
class FrameWithId : Frame
{
public FrameWithId()
{
Debug.WriteLine($"FrameId in CTor = {FrameId}");
Dispatcher.Dispatch(() => CheckForDefaultId());
}
private void CheckForDefaultId()
{
Debug.WriteLine($"FrameId after initialization = {FrameId}");
if(Equals(FrameId, Reserved.DefaultId))
{
// The XAML has not changed the FrameId
}
}
}
Я ищу конкретные сценарии и тестируемые результаты. ?
Мой пользовательский элемент управления - это кадр , который был изменен для поддержки связываемого свойства FrameID , которое пользователь библиотеки будет определять как enum в клиентском XAML, который они разрабатывают. Как показано ниже, свойство FrameID либо "IS", либо "не" установлен.[code] ...
... < /code> Основная задача достоверно обнаруживает, не произошла ли назначение свойств < /em>. < /p>
контекст: это часть структуры, которая поддерживает «Нет или один» неназванный кадр в области выполнения. [b] Мой вопрос: [/b] - это конструктор и инициализатор объекта, гарантированно выполняемые последовательно без перерыва? Потому что это выглядит таким образом , и я хочу избежать «магической задержки», которая может достаточное время для завершения операции. То, что я делал, публикую в конце очереди пользовательского интерфейса. Он ведет себя точно так же, как я ожидаю, что говорит о том, что поток не отказывается между выполнением конструктора и инициатором объекта, применяющим значения свойства. Что мне не ясно, так это то, вводит ли инициализация на основе связывания неопределенность, или есть другие случаи, когда мое предположение может потерпеть неудачу. < /P> class FrameWithId : Frame { public FrameWithId() { Debug.WriteLine($"FrameId in CTor = {FrameId}"); Dispatcher.Dispatch(() => CheckForDefaultId()); }
private void CheckForDefaultId() { Debug.WriteLine($"FrameId after initialization = {FrameId}"); if(Equals(FrameId, Reserved.DefaultId)) { // The XAML has not changed the FrameId } } } [/code] Я ищу конкретные сценарии и тестируемые результаты. ?