C# Can';在DataGrid中看不到文本框文本

C# Can';在DataGrid中看不到文本框文本,c#,wpf,datagrid,textbox,C#,Wpf,Datagrid,Textbox,我试图在WPF中创建一个DataGrid,它将显示给定集合中项目的不同属性。到目前为止,除了一个,一切都很正常。这是我的DataGrid的一个图像,完全按照预期填充: 你可能已经看到我的问题了。每个项目都有一个与之关联的值,该值已正确绑定。但是,我无法看到任何项目的值,除非我特别单击该单元格。例如: 我希望这些值始终可见,就像名称和默认值列一样,但非常重要的是,在运行时可以从DataGrid编辑该值,并且只有该值。以下是我为datagrid准备的XAML: <DataGrid Marg

我试图在WPF中创建一个DataGrid,它将显示给定集合中项目的不同属性。到目前为止,除了一个,一切都很正常。这是我的DataGrid的一个图像,完全按照预期填充:

你可能已经看到我的问题了。每个项目都有一个与之关联的值,该值已正确绑定。但是,我无法看到任何项目的值,除非我特别单击该单元格。例如:

我希望这些值始终可见,就像
名称
默认值
列一样,但非常重要的是,在运行时可以从DataGrid编辑该值,并且只有该值。以下是我为datagrid准备的XAML:

<DataGrid Margin="20" AutoGenerateColumns="False" ItemsSource="{Binding ConfigurationParameterCollection}" Name="MasterListBox" ScrollViewer.VerticalScrollBarVisibility="Visible" SelectionChanged="MasterListBox_SelectionChanged" AlternationCount="2" DockPanel.Dock="Top" HorizontalAlignment="Center" Width="1000" >
        <DataGrid.Columns>

            <DataGridTextColumn Header="Name" Binding="{Binding Name}"/>

            <!-- Begin Problem Area-->

            <DataGridTemplateColumn Header="Value">
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <TextBox Text="{Binding Path=Value, Mode=TwoWay}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
            </DataGridTemplateColumn>

            <!-- End Problem Area-->

            <DataGridTextColumn  Header="Default Value" Binding="{Binding DefaultValue}"/>


        </DataGrid.Columns>
    </DataGrid>

不要担心DataGrid的名称,它曾经是一个列表框,我只是从来没有想过要更改名称。所有的东西都连接得很好,我就是不明白为什么文本框文本不可见

非常感谢你能给予的任何帮助

编辑

我知道我可以通过使用
CellTemplate
而不是
CellEditingTemplate
来实现这一点,但后者的功能是只需单击两下即可编辑,而不必选择行。我想拥有此功能,因此如果有办法使用
CellTemplate
实现此功能,请告诉我。使用
CellTemplate
,我可以随时看到框:

我希望它像第二张图片一样,列的其余部分以datagrid的样式显示,而我正在编辑的单元格看起来像一个文本框

变化 DataGridTemplateColumn.CellEditingTemplate 到 DataGridTemplateColumn.CellTemplate


您可以指定显示模板和编辑模板

        <DataGridTemplateColumn Header="Value">
            <DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <TextBox Text="{Binding Path=Value, Mode=TwoWay}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellEditingTemplate>
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=Value, Mode=TwoWay}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>


我使用了
CellEditingTemplate
,因为它有一个功能,您必须在单元格上单击两次才能真正编辑它,否则它看起来就像其他列一样。有没有办法用
CellTemplate
做到这一点?我试过了,但它似乎仍在做同样的事情。为了澄清这一点,使用这种方法,值列中的单元格有一个可见的文本框,其中包含了所有随附的设计,从而降低了datagrid的总体风格。我希望它仅在焦点位于我正在编辑的特定单元格上时才显示。这看起来很完美,唯一的问题是TextBlock不允许我编辑值。当您双击时,它应该更改为TextBox!这不适合我。我应该在代码中实现某种逻辑吗?