在视图模型中获取对Xaml对象的引用

时间:2011-09-15 11:20:08

标签: wpf xaml binding

我有一个在Xaml中创建的对象:

<Grid>
   <MyObject/>
</Grid>

我需要将对象myObject绑定回视图模型中的属性。我不知道这是否可能,到目前为止我所看到的一切都将属性结合在一起,但任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

我假设你想要的是ViewModel在其中保留实际的视觉控制MyObject,而你的Grid则通过MVVM显示它。

这可以通过WPF中的ContentControl来实现。

假设您的ViewModel有一个属性MyObjectView,其中包含MyObject ...

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

话虽如此,您必须注意,MyObjectView不会绑定到任何其他内容控件,因为这会导致错误

  

“指定的元素已经是另一个元素的逻辑子元素。   首先断开它“

如果可以满足要求,则必须执行ContentTemplate选项。

如果有帮助,请告诉我。

答案 1 :(得分:0)

有可能。虽然它有点打破了。

您可以将InvokeCommandAction附加到此对象,并通过ElementBinding将CommandParameter绑定到它。然后在您在viewmodel中定义的命令的回调中,您将从CommandParameter中引用此对象。