2012-01-25 5 views
0

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

Предположите мы имеем UserControl, которые имеют свойство, которое инициализируется уже

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

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

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

ответ

1

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

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

Конечно, есть один extreme solution. Но, пожалуйста, не делай этого. Для вашего сакэ, и все остальные :)

EDIT:

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

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

+0

Вы уверены, что нет возможности изменить значение prop? уверенный писать код в xaml не является хорошим решением, я могу сделать то же самое в моем UserControl BE, мне просто интересно, есть ли какой-либо другой путь от xaml, я нашел анимацию, делаю это, но ищу другие решения –

+0

@ArsenMkrt См. мое редактирование. –

+0

Спасибо за сообщение, я думаю, вы правы, другого способа нет, но это может быть ценное будущее, потому что, насколько я могу придать ценность собственности, логично, чтобы способность давала значение и свойства –

0

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

+0

Я не хочу менять ссылку на SomeClass @BalamBalam, я хочу изменить свойство в SomeClass, у которого есть setter –

+0

Вы пытались ссылаться на имя свойства, используя Binding Path? – Paparazzi

+0

Я не хочу привязывать ti к этому свойству, я хочу дать статическое значение, например, из xaml :) –

Смежные вопросы