Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定到子项属性_C#_Wpf_Mvvm - Fatal编程技术网

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>