Можно ли изменить значение с xaml? - PullRequest
0 голосов
/ 25 января 2012

Можно ли изменить значение свойства с xaml?

Представьте, что у нас есть пользовательский контроль, свойство которого уже инициализировано

public class MyUserControl : UserControl
{
    ...
    public SomeClass MainWindow
    {
         get
         {
              return _someClass ?? (_someClass = new SomeClass();)
         }
    }
}

Теперь можно изменить свойство SomeClassбез инициализации из xaml и без анимации?

Почему xaml не позволяет синтаксису писать <UserControl.MainWindow.Property>?

Ответы [ 2 ]

1 голос
/ 25 января 2012

Добавьте установщик к свойству и разрешите XAML создавать свой собственный SomeClass в соответствии с его потребностями - теперь это обычно делается.

XAML - это декларативный язык, он не пытается быть завершенным по Тьюрингу или что-то в этом роде, он просто описывает создание объектов.

Конечно, есть одно экстремальное решение . Но, пожалуйста, не делай этого. Ради вас и всех остальных:)

EDIT:

Другим решением может быть создание нового свойства в UserControl и синхронизация этого свойства со свойством SomeClass (set{ this._someClass.someProperty = value; }). Если вы установите это свойство в объявлении XAML UserControl, изменение будет распространено на член _someClass.

Конечно, свойство обертки должно быть свойством зависимости, если вы хотите привязать к обернутому свойству.

0 голосов
/ 25 января 2012

Во-первых, вам нужно иметь набор для изменения значения.Два, просто свяжите это с TwoWay в XAML.

...