2010-09-01 85 views
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> 
+0

鑑於上述信息,DataGrid應該正常工作(我試過了)。其他一些事情最有可能造成這種情況。你可以發佈你的XAML嗎? – ASanch 2010-09-01 20:33:34

+0

看到你的XAML。我嘗試了使用直接複製粘貼,它仍然正常工作。 http://i.imgur.com/ItS6V.png。如果將鼠標懸停在列標題上,您是否收到回覆?一些事情:1)也許別的什麼是禁用網格?或2)網格頂部有透明的東西?我很確定,但它與網格初始化無關。 – ASanch 2010-09-01 20:59:04

+0

對於在應用程序中定義的DataGrid,是否有一些Style或ControlTemplate(帶有x:Key =「{x:Type DataGrid}」)?然後,您需要將此添加到您的問題。 – 2010-09-01 21:23:01

回答

0

是,我是裝的時候它的父標籤GotFocus事件觸發的DataGrid和該事件被解僱每次被點擊的問題在DataGrid上。