在VS 2010 / .NET 4.0中,我有一个简单类的List<MyClass>
列表:
public class MyClass
{
public string String1 { get; set; }
public string String2 { get; set; }
public MyClass(string string1, string string2)
{
String1 = string1;
String2 = string2;
}
}
此列表显示在代码后面的WPF DataGrid
中:
首先添加列:
List<DataGridColumn> cols = ParentClass.GetColumns();
foreach (DataGridColumn dgc in cols)
{
myDataGrid.Columns.Add(dgc);
}
下一步设置项目来源:
myDataGrid.ItemsSource = ParentClass.MyClassess;
MyClassess是List
这样可以正常运行DG,但无法在DataGrid中选择行,DataGrid.SelectedItem
始终返回null。 DataGrid注册了鼠标事件,但是在发生点击的地方没有选择任何行,就像DataGrid被禁用一样...
SelectionMode="Single"
SelectionUnit="FullRow"
IsReadOnly="False"
有谁知道这里发生了什么?
TIA
这是XAML的要求:
<TabItem Header="Sessions" GotFocus="TabSessionsGotFocus">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<DockPanel Grid.Row="0" Grid.ColumnSpan="3" Margin="0">
<DataGrid x:Name="dgSessions" DockPanel.Dock="Top" IsEnabled="True" AutoGenerateColumns="False"
SelectionMode="Single" SelectionUnit="FullRow" Background="WhiteSmoke"
AlternatingRowBackground="Gainsboro" GridLinesVisibility="None" IsReadOnly="False"
ColumnHeaderHeight="25" RowHeight="21" MouseRightButtonDown="SessionsRightButtonDown" >
<DataGrid.ContextMenu>
<ContextMenu x:Name="cmSessions">
<MenuItem x:Name="miSessionActions">
Action
</MenuItem>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
</DockPanel>
</Grid>
</TabItem>
答案 0 :(得分:0)
问题在于,当我的父Tab Gtf事件被触发时,我正在加载DataGrid,并且每次点击DataGrid时都会触发此事件。