小编use*_*014的帖子

无法在另一个 Datagrid 的 RowDetailsTemplate 中跟踪 DataGrid 的 SelectedItem

我今天早些时候遇到了这个问题,但找不到解决方案。在SelectedItemDataGrid这里面RowDetailsTemplate的另一个DataGrid没有被置位时,我选择里面一排的DataGrid这里面的RowDetailsTemplate。(很难解释清楚。)

绑定对于列表都正常工作。MainViewModel 包含一个ObservableCollectionofMyItem对象,这就是外部DataGrid绑定到的对象。

MyItem对象包含一个ObservableCollectionofMyItem2对象并且它们正确绑定到内部DataGrid

MyItem对象还有一个名为的属性SelectedItem2,该属性应该绑定到SelectedItem内部的 ,DataGrid但永远不会被设置。

顺便说一句:我正在使用 VS2012 和 .Net 4.5。

例子:

MainWindow.xaml

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:wpfApplication1="clr-namespace:WpfApplication1"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <wpfApplication1:MainWindowViewModel x:Key="MainVm"/>
</Window.Resources>
<Grid DataContext="{StaticResource MainVm}">
    <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=MyItem1s}">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Name" Width="*"
                                   Binding="{Binding Path=Name}"/>
        </DataGrid.Columns>
        <DataGrid.RowDetailsTemplate>         
            <DataTemplate>
                <DataGrid AutoGenerateColumns="False"
                          ItemsSource="{Binding Path=Item2s}"
                          SelectedItem="{Binding …
Run Code Online (Sandbox Code Playgroud)

c# wpf datagrid observablecollection rowdetailstemplate

5
推荐指数
1
解决办法
1544
查看次数