gpt4 book ai didi

c# - 在 DataGrid 中看不到文本框文本

转载 作者:太空宇宙 更新时间:2023-11-03 12:12:32 25 4
gpt4 key购买 nike

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

Fully Populated Data Grid

您可能已经看到我的问题了。每个项目都有一个与之关联的值,该值已正确绑定(bind)。但是,除非我专门单击该单元格,否则我看不到任何项目的值。例如:

Data Grid With Value Showing

我希望值始终可见,就像 NameDefault Value 列一样,但是值非常重要,而且只有值, 可在运行时从 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 的名称,它曾经是一个 ListBox,我从来没有费心去更改名称。一切都完美地连接起来,我只是想不通为什么 TextBox 文本不可见。

非常感谢您提供的任何帮助。

编辑

我知道我可以使用 CellTemplate 而不是 CellEditingTemplate 来实现这一点,但后者的特点是只需单击两次即可进行编辑,否则会选择该行。我想要这个功能,所以如果有办法用 CellTemplate 做到这一点,请告诉我。使用 CellTemplate,我总是能看到方框:

enter image description here

我希望它像第二张图片那样,其中列的其余部分以数据网格的样式出现,而我正在编辑的单元格看起来像一个文本框。

最佳答案

改变 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>

关于c# - 在 DataGrid 中看不到文本框文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51406911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com