我有看法:
<Grid>
<!--Some Stuff-->
<Control XXX="{Binding ButtomControl}"/>
<!--Some Stuff-->
</Grid>
我有VM:
public sealed class SelectionDialogV3VM : PropertyChanges
{
// Some Stuff
public Control ButtomControl
{
get{return _buttomControl;}
set
{
_buttomControl = value;
OnPropertyChanged("ButtomControl");
}
}
// Some Stuff
}
我的目标:在运行时更改我的主视图中的一些视图(ButtomControl)。 但是,我不能做正确的绑定,因为我不知道XXX属性。
感谢
答案 0 :(得分:3)
我只想添加其他内容:
应该不惜一切代价避免在视图模型中引用UI控件。
如果要通过视图模型切换视图,请尝试使用DataTemplates和ContentControl。
请参阅:
http://rachel53461.wordpress.com/2011/05/28/switching-between-viewsusercontrols-using-mvvm/
答案 1 :(得分:2)
尝试这样的事情:
<ContentControl Content="{Binding ButtomControl}"/>
但老实说,在Control
类型的ViewModel中拥有一个属性并不是一个好兆头:D
答案 2 :(得分:1)
使用ContentPresenter:
<ContentPresenter Content="{Binding ButtomControl}"/>
无论如何,绑定到一个控件很奇怪!
答案 3 :(得分:0)
谢谢大家,所有答案都很有价值
最后,我使用了DataTriggers,如下所述: MVVM : how to switch between views using DataTemplate + Triggers
由于