0
在2010 VS/.NET 4.0,我有一個簡單的類的列表List<MyClass>
這樣:WPF數據網格選擇禁用
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>
鑑於上述信息,DataGrid應該正常工作(我試過了)。其他一些事情最有可能造成這種情況。你可以發佈你的XAML嗎? – ASanch 2010-09-01 20:33:34
看到你的XAML。我嘗試了使用直接複製粘貼,它仍然正常工作。 http://i.imgur.com/ItS6V.png。如果將鼠標懸停在列標題上,您是否收到回覆?一些事情:1)也許別的什麼是禁用網格?或2)網格頂部有透明的東西?我很確定,但它與網格初始化無關。 – ASanch 2010-09-01 20:59:04
對於在應用程序中定義的DataGrid,是否有一些Style或ControlTemplate(帶有x:Key =「{x:Type DataGrid}」)?然後,您需要將此添加到您的問題。 – 2010-09-01 21:23:01