Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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
.net WPF数据网格选择已禁用_.net_Wpf_Wpfdatagrid - Fatal编程技术网

.net WPF数据网格选择已禁用

.net WPF数据网格选择已禁用,.net,wpf,wpfdatagrid,.net,Wpf,Wpfdatagrid,在VS 2010/.NET 4.0中,我有一个简单类的列表: public class MyClass { public string String1 { get; set; } public string String2 { get; set; } public MyClass(string string1, string string2) { String1 = string1; String2 = strin

在VS 2010/.NET 4.0中,我有一个简单类的
列表:

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);
}
我的女同学在名单上

从某种意义上说,DG可以填充,但无法在DataGrid和DataGrid中选择行。SelectedItem总是返回null。DataGrid会注册鼠标事件,但如果单击发生,则不会选择任何行,就像DataGrid被禁用一样

SelectionMode="Single"  
SelectionUnit="FullRow" 
IsReadOnly="False"
有人知道这里发生了什么吗

短暂性脑缺血发作

以下是所需的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的父选项卡GotFocus事件时,我正在加载DataGrid,并且每次单击DataGrid时都会触发此事件。

根据上述信息,DataGrid应该可以正常工作(我尝试过)。这很可能是其他原因造成的。你能发布你的XAML吗?我看到你的XAML了。我用直接复制粘贴试用了一下,效果仍然很好。如果将鼠标悬停在列标题上,是否会收到响应?有两件事:1)可能是其他原因导致电网瘫痪?或者2)网格顶部有透明的东西?不过我很确定这与网格的初始化方式无关。应用程序中是否定义了用于数据网格的样式或控制模板(使用x:Key=“{x:Type DataGrid}”)?然后你需要把这个添加到你的问题中。@karmic:如果某个透明的东西在网格上,它不会注册点击事件,它会注册@Simpzon:DataGrid没有样式,有一个样式针对DataGridColumnHeader,但我在注释它时得到了相同的结果…好的,问题是我在加载DataGrid时触发了其父选项卡GotFocus事件,并且每次单击DataGrid时都会触发此事件。。。不确定我是否应该结束这个问题?
<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>