C# 绑定到子项属性
我有他们的视图模型页面。使用C# 绑定到子项属性,c#,wpf,mvvm,C#,Wpf,Mvvm,我有他们的视图模型页面。使用Frame.NavigationManager.Navigate()在框架中显示页面 在一个页面中,我有一个分组框,其中有一个子数据网格。我希望GroupBox根据DataGrid中的项目计数更改其可见性 <GroupBox .... Visibility="{Binding HasItems, Converter={StaticResource BooleanToVisibili
Frame.NavigationManager.Navigate()
在框架中显示页面
在一个页面
中,我有一个分组框
,其中有一个子数据网格
。我希望GroupBox
根据DataGrid
中的项目计数更改其可见性
<GroupBox ....
Visibility="{Binding HasItems,
Converter={StaticResource BooleanToVisibilityConverter}}">
<DataGrid x:Name="SomeDataGrid"
IsReadOnly="True"
ItemsSource="{Binding Items}"/>
</GroupBox>
以下是我所拥有的:
<GroupBox ....
Visibility="{Binding ElementName=SomeDataGrid,
Path=HasItems,
Converter={StaticResource BooleanToVisibilityConverter}}">
<DataGrid x:Name="SomeDataGrid"
IsReadOnly="True"
ItemsSource="{Binding Items}"/>
</GroupBox>
问题
将页面更改为另一页面并返回后,我有以下绑定异常
System.Windows.Data错误:4:找不到与引用绑定的源
'ElementName=SomeDataGrid'。BindingExpression:Path=HasItems
我尝试过使用x:Reference
,但遇到了同样的问题
有人能解释一下我做错了什么吗?也许,项目
集合在某个点上是空的,这使得组框
折叠起来。当GroupBox
折叠时,它会从视图中删除其内容(数据网格DataGrid
)
从视图中删除DataGrid
后,Binding
再也找不到它的引用,因此它会中断
如果我是你,我会将GroupBox
Visibility
直接绑定到ViewModel属性,而不是绑定到DataGrid
<GroupBox ....
Visibility="{Binding HasItems,
Converter={StaticResource BooleanToVisibilityConverter}}">
<DataGrid x:Name="SomeDataGrid"
IsReadOnly="True"
ItemsSource="{Binding Items}"/>
</GroupBox>