首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定数据网格中的数据网格

绑定数据网格中的数据网格
EN

Stack Overflow用户
提问于 2013-07-16 22:08:38
回答 1查看 171关注 0票数 1

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

代码语言:javascript
复制
    protected TheFile curentFile ;
    public TheFile CurentFile
    {
        get { return curentFile; }
        set { curentFile = value;
            OnPropertyChanged("CurentFile"); }
    }

下面是我的数据网格:

代码语言:javascript
复制
    <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>

但是这个绑定不起作用

代码语言:javascript
复制
   <DataGrid ItemsSource="{Binding Path=Files}" AutoGenerateColumns="False" SelectedItem="{Binding Path=CurentFile, UpdateSourceTrigger=PropertyChanged}">
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-17 01:55:27

你在这里遇到了DataContext的问题。

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

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

试试这个:

代码语言:javascript
复制
<DataGrid ItemsSource="{Binding Path=Files}" 
          SelectedItem="{Binding Path=DataContext.CurentFile, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}"
          AutoGenerateColumns="False" >
    ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17678818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档