简体   繁体   English

WPF Datagrid无法选择行

[英]WPF Datagrid cannot select rows

I'm using the tabcontrol and there are two tabs in my tabcontrol, then one datagrid in each tab. 我正在使用tabcontrol,我的tabcontrol中有两个选项卡,然后每个选项卡中有一个数据网格。 However, now I can select rows in first datagrid, but cannot in second. 但是,现在我可以在第一个数据网格中选择行,但不能在第二个数据网格中选择行。 I don't know why I cannot select the rows in second datagrid. 我不知道为什么我不能在第二个datagrid中选择行。

Below is my xaml: 下面是我的xaml:

<TabControl Height="547" HorizontalAlignment="Left" Margin="12,14,0,0" Name="ManageTab" VerticalAlignment="Top" Width="768" Grid.RowSpan="2" 
                    SelectionChanged="ManageTab_SelectionChanged">
            <TabItem Header="STUT" Name="tab1">
                <Grid Height="520" Width="765" DataContext="{StaticResource UserViewSource}">
                    <DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Height="514" HorizontalAlignment="Left" 
                  ItemsSource="{Binding}" Name="UserDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected"
                  AlternatingRowBackground="LightBlue" VerticalContentAlignment="Center"
                  HorizontalGridLinesBrush="Gray" VerticalGridLinesBrush="Gray"
                  VerticalAlignment="Top" Width="346" SelectedCellsChanged="UserDataGrid_SelectedCellsChanged">
                        <DataGrid.Columns>
                            <DataGridTextColumn x:Name="AccColumn" Binding="{Binding Path=Acc}" Header="Account" Width="80" IsReadOnly="True" />
                            <DataGridTextColumn x:Name="NameColumn" Binding="{Binding Path=Name}" Header="Name" Width="80" IsReadOnly="True" />
                        </DataGrid.Columns>
                    </DataGrid>
                    <Button Content="Exit" Height="49" HorizontalAlignment="Left" Margin="669,0,0,110" Name="btnExit" VerticalAlignment="Bottom" Width="75" Click="btnExit_Click" />
                </Grid>
            </TabItem>
            <TabItem Header="CLASS" Name="tab2">
                <Grid Height="508" Width="753" DataContext="{StaticResource ClassViewSource}">
                    <DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Height="514" HorizontalAlignment="Left" 
                                  ItemsSource="{Binding}" Margin="6,2,0,0" Name="ClassDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected"
                                  AlternatingRowBackground="LightBlue" VerticalContentAlignment="Center"
                                  HorizontalGridLinesBrush="Gray" VerticalGridLinesBrush="Gray"
                                  VerticalAlignment="Top" Width="342" SelectedCellsChanged="ClassDataGrid_SelectedCellsChanged">
                        <DataGrid.Columns>
                            <DataGridTextColumn x:Name="ClassNameColumn" Binding="{Binding Path=ClassName}" Header="ClassName" Width="280" />
                        </DataGrid.Columns>
                    </DataGrid>
                    <Button Content="Exit" Height="49" HorizontalAlignment="Left" Margin="672,0,0,178" Name="btnExit2" VerticalAlignment="Bottom" Width="75" Click="btnExit_Click"/>
                </Grid>
            </TabItem>
        </TabControl>

Finally, I found that I put my UserViewSource = ((CollectionViewSource)(this.FindResource("UserViewSource"))); 最后,我发现我把我的UserViewSource = ((CollectionViewSource)(this.FindResource("UserViewSource"))); in cs file into Window_Loaded function. 在cs文件中进入Window_Loaded函数。 Then, it works. 然后,它的工作原理。 Originally, I put it into the Tab_selectionchanged function. 最初,我将它放入Tab_selectionchanged函数中。

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

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