gpt4 book ai didi

wpf - 无法编辑我的 DataGrid WPF Framework 4.5 的单元格

转载 作者:行者123 更新时间:2023-12-04 11:10:06 27 4
gpt4 key购买 nike

我的 ObservableCollection 有三个项目,并且行在数据网格中一致显示。
我无法将 DataGrid 的单个单元格转为编辑模式。我尝试单击、单击单击、双击、F2、...,但整行保持选中状态。如何让用户编辑数据网格。
我在其他帖子中发现了类似的数据网格编辑问题,但没有人解决我的问题。这是代码(WPF NetFramework 4.5)。目的是,只有第一列是不可编辑的(只读)。

<DataGrid Name="myDataGrid" Grid.Row="2" AutoGenerateColumns="False" ItemsSource="{Binding}" IsReadOnly="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="name" IsReadOnly="True" Width="200" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Formulation" Width="100" IsReadOnly="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding FormulationStr}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBlock Text="{Binding FormulationStr}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="volume Diff" Width="100" IsReadOnly="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding volumeDiff}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBlock Text="{Binding volumeDiff}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>

最佳答案

您已放置 TextBlockcell template以及在 cell editing template .这就是为什么您在按 F2 并双击单元格时没有注意到任何变化的原因,因为无论它总是如何TextBlock您无法编辑。

要么放置 TextBox在您的 CellEditingTemplate像这样 -

<DataGridTemplateColumn Header="Formulation" Width="100" IsReadOnly="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding FormulationStr}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding FormulationStr}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

或者简单地使用 DataGridTextColumn代替 DataGridTemplateColumn它在内部提供了您想要通过上述代码实现的支持 -
<DataGridTextColumn Header="Formulation" Width="100" IsReadOnly="False" Binding="{Binding FormulationStr}" />

关于wpf - 无法编辑我的 DataGrid WPF Framework 4.5 的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13385950/

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