需要使用RowDetailsTemplate - mvvm在datagrid中选择或突出显示相似的行

时间:2012-08-31 22:35:40

标签: wpf mvvm datagrid rowdetailstemplate

我有datagrid有rowdetails。我的行可以重复。我想选择所有相似的行。我怎么能实现这一点。我正在使用mvvm模式。我将selectedItem绑定到视图模型中的相同属性,但它不起作用。

这是xaml代码:

   <DataGrid Margin="0,6,0,12" 
          BorderBrush="Silver" 
          SelectionMode="Single" 
          HeadersVisibility="Column"
          AutoGenerateColumns="False" 
          CanUserAddRows="False" 
          CanUserDeleteRows="False" 
          CanUserSortColumns="False" 
          CanUserReorderColumns="False" 
          VerticalGridLinesBrush="Silver"
          HorizontalGridLinesBrush="Silver" 
          VerticalScrollBarVisibility="Visible" 
          HorizontalScrollBarVisibility="Auto" 
          RowDetailsVisibilityMode="Visible" 
          IsSynchronizedWithCurrentItem="{x:Null}"
          ItemsSource="{Binding AccessoryWalls}" 
          Grid.Row="1"
          Grid.Column="0" 
          Name="gAccessories">

    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding ID,StringFormat='W{0}'}" FontWeight="Bold" Foreground="Blue" />
    </DataGrid.Columns>

    <DataGrid.RowDetailsTemplate >
        <DataTemplate>
            <Grid >
                <DataGrid ItemsSource="{Binding Accessories}"
                          SelectedItem="{Binding Path=DataContext.SelectedAccessory, RelativeSource={RelativeSource AncestorType={x:Type UserControl}},Mode=TwoWay}"
                          CanUserAddRows="False"
                          HeadersVisibility="Column"
                          AutoGenerateColumns="False">


                    <DataGrid.Columns>
                        <DataGridTextColumn  Header="Horizontal"
                                             Width="60"
                                             Binding="{Binding Horizontal, Converter={StaticResource DimensionConverter}}" />
                        <DataGridTextColumn  Header="Vertical"
                                             Width="60"
                                             Binding="{Binding Vertical, Converter={StaticResource DimensionConverter}}" />
                        <DataGridTextColumn  Header="Detail"
                                             IsReadOnly="True"
                                             Binding="{Binding LongName}" />

                    </DataGrid.Columns>
                    <DataGrid.RowDetailsTemplate>
                        <DataTemplate />
                    </DataGrid.RowDetailsTemplate>
                </DataGrid>
            </Grid>
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
</DataGrid>

如您所见,我将其绑定到VM级别的“SelectedAccessory”并且它可以正常工作。它与屏幕中的其他控件同步,但它不与数据网格中的其他行同步。 当我点击其中一行时,我想选择所有“Overhead Door Opening12”行。

提前致谢。

enter image description here

0 个答案:

没有答案