2009-11-12 5 views
0

Попытки разработки с использованием MVVM:Xaml - добавить существующий элемент управления к сетке

У меня есть этот контроль Csla.PropertyStatus, созданный в моем ViewModel. Я хочу добавить его в xaml (через привязку, я думаю) и установить некоторые дополнительные свойства там (например, цель).

Я не знаю, как я мог это сделать, даже если это возможно.

Я искал что-то вроде

<csla:PropertyStatus Instance="{Binding Path=MyStatus}" 
        Target="{Binding ElementName=txtTextBox}" 
        Grid.Column="2" Grid.Row="0"/> 

Возможно ли это каким-то образом? ... Мне нужно создать его в ViewModel, потому что мне нужно установить некоторые свойства, что представление (XAML) не разрешено знать о.

Редактировать: Имущество, о котором я говорю, является моделью. Чтобы выполнить проверку, PropertyStatus требует ссылки на бизнес-объект. Но, учитывая парадигму MVVM (или, как я понимаю), представление должно быть отделено от модели и должно знать только о ViewModel. Я мог бы изменить этот подход, хотя ...

ответ

1

Вы НЕ МОЖЕТЕ сделать это. BTW, представление относится к элементам управления пользовательского интерфейса и их свойствам, поэтому говорить, что представление не позволяет «знать о» свойство на одном из своих элементов, немного ... экстремально. Описание того, что вы пытаетесь сделать здесь, может помочь в предоставлении вам достойного ответа.

+0

Хммм, возможно, вы сможете привязать свойство Content Content Control, но это будет плохой дизайн imho. – Will

+0

Я обновил вопрос для разъяснения; спасибо за ответ, Уилл! – Teodor

+0

Ваша интерпретация MVVM не только жесткая, но и не совсем правильная. Вы не можете скрыть модели из представления; представление привязывается к моделям, предоставленным ViewModel. В ваших требованиях указано, что представление должно быть привязано к любому числу возможных моделей? Расслабься, парень. Иди с потоком, мужик. Привяжите эти модели! Носите цветы в ваших волосах! Настройтесь, включите, не бойтесь жнеца и т. Д. – Will

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