Получить ссылку на объект Xaml в модели представления - PullRequest
2 голосов
/ 15 сентября 2011

У меня есть объект, созданный в Xaml:

<Grid>
   <MyObject/>
</Grid>

Мне нужно как-то связать объект myObject со свойством в моей модели представления.Я не знаю, возможно ли это, все, что я видел до сих пор, связывает свойства вместе, но любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 15 сентября 2011

Я предполагаю, что вы хотите, чтобы ваш ViewModel содержал фактический визуальный контроль MyObject в нем, а ваш Grid отображал его через MVVM.

Это возможно через ContentControl в WPF.

Предполагая, что у вашего ViewModel есть свойство MyObjectView, которое содержит MyObject ...

   <Grid>
       <ContentControl Content="{Binding MyObjectView}" />
   </Grid>

Сказав, что вы должны быть осторожны с тем же MyObjectViewне привязан ни к какому другому элементу управления контентом, так как это приведет к ошибке

"Указанный элемент уже является логическим дочерним элементом другого элемента. Сначала отключите его"

Иесли это требование возможно, вы должны выполнить ContentTemplate вариант.

Дайте мне знать, если это поможет.

0 голосов
/ 15 сентября 2011

Это возможно.Тем не менее, это своего рода разрыв mvvm.

Вы можете прикрепить действие InvokeCommandAction к этому объекту и привязать к нему CommandParameter через ElementBinding.Затем при обратном вызове команды, которую вы определили в модели представления, у вас будет ссылка на этот объект из CommandParameter.

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