C# 我能';t更改“的可见性”;“嵌入式”;WPF中的视图
我有一个视图(.xaml),其中我有另一个“嵌入”视图: 但它根本不会改变可见性。我尝试了以下方法:C# 我能';t更改“的可见性”;“嵌入式”;WPF中的视图,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我有一个视图(.xaml),其中我有另一个“嵌入”视图: 但它根本不会改变可见性。我尝试了以下方法: 将所有相关属性更改为public 检查主视图模型是否真的设置为主视图的上下文,是的 调试以查看是否确实调用了ExecHideMyView(),是的 将可见性=…作为的属性 现在我没有主意了。。。谢谢你的建议 Edit:我删除了DataContext=“{Binding Path=My_ViewModel}”,它突然起作用了。问题似乎就在那里。问题在于,当我设置DataContext=“{Bi
- 将所有相关属性更改为
public
- 检查主视图模型是否真的设置为主视图的上下文,是的
- 调试以查看是否确实调用了
,是的ExecHideMyView()
- 将
作为可见性=…
的属性
Edit:我删除了
DataContext=“{Binding Path=My_ViewModel}”
,它突然起作用了。问题似乎就在那里。问题在于,当我设置DataContext=“{Binding Path=My_ViewModel}”
时,它在My_ViewModel
中搜索My_Visibility
而不是主视图模型
因此,解决方案是将myu可见性
移动到内部myu视图模型
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</Window.Resources>
<Grid DataContext="{Binding Path=My_ViewModel}" Visibility="{Binding Path=My_Visibility, Converter={StaticResource BooleanToVisibilityConverter}}">
<Views:My_View/>
</Grid>
protected void ExecHideMyView()
{
My_Visibility = false;
NotifyPropertyChanged("My_Visibility");
}