【发布时间】:2013-09-09 03:17:19
【问题描述】:
我的 xaml 看起来像这样:
<UserControl>
<Grid>
...
<Grid>
...
<Grid Grid.Row="3">
<local:UserControl1 Visibility = "{Binding UserControl1Visibility}" />
<local:UserControl2 Visibility = "{Binding UserControl2Visibility}" />
</Grid>
</UserControl>
Control1Visibility 和 Control2Visibility 是我的 ViewModel 中的属性,但它不起作用。此网格无法动态显示两个用户控件。有人有想法吗?
编辑
虚拟机:
private Visibility userControl1Visibility = Visibility.Visible;
public Visibility UserControl1Visibility
{
get { return userControl1Visibility; }
set
{
if (userControl1Visibility != value)
{
userControl1Visibility = value;
RaisePropertyChanged("UserControl1Visibility");
}
}
}
private Visibility userControl2Visibility = Visibility.Collapsed;
public Visibility UserControl2Visibility
{
get { return userControl2Visibility ; }
set
{
if (userControl2Visibility != value)
{
userControl2Visibility = value;
RaisePropertyChanged("UserControl2Visibility");
}
}
}
【问题讨论】:
-
什么不起作用?您最初是否看到其中任何一个控件?您能否也发布您的 ViewModel 代码?
-
你能分享你的VM代码吗?以及您如何为您的视图设置 DataContext?
-
@Andrew,@nit,我已经附加了我的视图模型,当应用程序运行时,usercontrol1 无法显示。我有一个按钮可以切换它们的可见性,但不起作用。
-
nit 提出了一个很好的问题 - 如何在网格上设置 DataContext?
-
在我的视图后面的代码中:this.DataContext = MainViewModel.Instance;
标签: wpf xaml mvvm user-controls