繁体   English   中英

在数据网格中绑定数据网格

[英]Binding datagrid in datagrid

为什么我不能绑定 datagrid 属性选定的项目? 我的 ViewModel 中有属性

    protected TheFile curentFile ;
    public TheFile CurentFile
    {
        get { return curentFile; }
        set { curentFile = value;
            OnPropertyChanged("CurentFile"); }
    }

这是我的数据网格:

    <DataGrid IsReadOnly="True" AutoGenerateColumns="False" Grid.ColumnSpan="1" Grid.Row="1" Grid.Column="0" Grid.RowSpan="1"   Name="dataGrid1" ItemsSource="{Binding SameFileGroups}" SelectedItem="{Binding CurentGroup}">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Всього" Width="1*" Binding="{Binding TotalSizeInDirectory}"/>
            <DataGridTextColumn Header="1 файл" Width="1*" Binding="{Binding OneFileSize}"/>
        </DataGrid.Columns>
        <DataGrid.RowDetailsTemplate>
            <DataTemplate>
                <DataGrid ItemsSource="{Binding Path=Files}" AutoGenerateColumns="False" SelectedItem="{Binding Path=CurentFile, UpdateSourceTrigger=PropertyChanged}">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="Шлях" Binding="{Binding Path=Destination}"/>
                        <DataGridTextColumn Header="Розмір" Binding="{Binding Path=SizeBytes}"/>
                        <DataGridTextColumn Header="md5" Binding="{Binding Path=Md5Hash}"/>
                    </DataGrid.Columns>
                </DataGrid>
            </DataTemplate>
        </DataGrid.RowDetailsTemplate>
    </DataGrid>

但是这种绑定不起作用

   <DataGrid ItemsSource="{Binding Path=Files}" AutoGenerateColumns="False" SelectedItem="{Binding Path=CurentFile, UpdateSourceTrigger=PropertyChanged}">

您在此处使用DataContext有问题。

RowDetailsTemplate您尝试绑定到主视图模型中的属性,但RowDetailsTemplate DataContext是行项目。

如果要绑定到主视图模型中的属性,则应使用RelativeSource绑定。

试试这个:

<DataGrid ItemsSource="{Binding Path=Files}" 
          SelectedItem="{Binding Path=DataContext.CurentFile, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}"
          AutoGenerateColumns="False" >
    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM