Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在C WPF数据网格中选择特定行_C#_Wpf_Datagrid - Fatal编程技术网

C# 无法在C WPF数据网格中选择特定行

C# 无法在C WPF数据网格中选择特定行,c#,wpf,datagrid,C#,Wpf,Datagrid,如上所述,我有一个datagrid I NC WPF,其中填充了13行信息。单击某一行时,我可以选择该行,并触发SelectionChanged事件(第10行除外)。单击此行甚至不会选择该行。如果我单击它上面或下面的行,事件就会触发,然后我可以使用键盘上下箭头导航到第10行并选择它,然后让事件触发,而不是通过鼠标单击,而只触发这一行 行与其他行没有什么不同,并且是100%可重复的。那么为什么我不能用鼠标点击来选择这一行呢?我应该检查什么 <DataGrid x:Name="MyDataGr

如上所述,我有一个datagrid I NC WPF,其中填充了13行信息。单击某一行时,我可以选择该行,并触发SelectionChanged事件(第10行除外)。单击此行甚至不会选择该行。如果我单击它上面或下面的行,事件就会触发,然后我可以使用键盘上下箭头导航到第10行并选择它,然后让事件触发,而不是通过鼠标单击,而只触发这一行

行与其他行没有什么不同,并且是100%可重复的。那么为什么我不能用鼠标点击来选择这一行呢?我应该检查什么

<DataGrid x:Name="MyDataGrid" Width="826" Height="320" Margin="18,45,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" HorizontalContentAlignment="Center" ItemsSource="{Binding}" CanUserResizeColumns="False" IsReadOnly="True" CanUserResizeRows="False" SelectionMode="Single" AutoGenerateColumns="False" CanUserReorderColumns="False" SelectionChanged="dgBatches_SelectionChanged">  
<DataGrid.Columns>  
<DataGridTextColumn Header="Unit" Width="*" MinWidth="150" DisplayIndex="0" Binding="{Binding Path=Unit_Desc}" />  
<DataGridTextColumn Header="Current Phase" Width="Auto" MinWidth="100" DisplayIndex="1" Binding="{Binding Path=Status_Phase}" />  
<DataGridTextColumn Header="Batch" Width="Auto" MinWidth="80" DisplayIndex="2" Binding="{Binding Path=Batch_Number}" />  
</DataGrid.Columns>  
</DataGrid>  

private void MyDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)  
{  
int selectedIndex = MyDataGrid.SelectedIndex;  
}  

private void PopulateMyDataGrid()
{
StoredProcedureExecutionResult sper = null;
List<Parameter> parameterList = new List<Parameter>();
parameterList.Add(CreateServiceParameter(1, "@ProductionDay", "9/15/2013");
sper = _databaseService.ExecuteProcedure(_databaseConnectionDor, "sp_PopulateGrid", parameterList);
if (null != sper.FirstTable)
{
    DataTable batchTable = sper.FirstTable.DataTable.Copy();
    MyDataGrid.DataContext = null;
    MyDataGrid.DataContext = batchTable;
    MyDataGrid.Items.Refresh();
}
}

谢谢

好了,我把它修好了。在VisualStudio中,我在网格上单击鼠标右键,转到“选项”,然后选择“带到前面”。完成后,我可以在“选择它”中单击网格中的任何行。为什么?我不知道。

Dude,发布相关代码和XAML。将代码发布到创建行的位置。并包含数据项。行创建绑定到一个返回13行的存储过程,我将在那里发布我正在做的事情。为什么你要设置DataContext而不是ItemsSource?真让我吃惊,我被交给了代码库,他们就是这么做的。