1

I have datagrid that have rowdetails. My rows can be duplicated. I want to select all rows that are alike. how can I achieve that. I'm using mvvm pattern. I bind the selectedItem to the same property in my view model, but it does not work.

Here's the xaml code:

   <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>

As you see I bind it to "SelectedAccessory" on VM level and it works. It synchronizes with other controls in the screen, but it does not synchronizes with other rows in the datagrid. I would like to select all "Overhead Door Opening12" rows when I clicked on one of them.

Thanks in advance.

enter image description here

MsBugKiller
  • 813
  • 1
  • 7
  • 12

0 Answers0