gpt4 book ai didi

c# - 编辑模式下的 DataGrid 单元格不接受 .(点)作为 WPF MVVM 中的十进制值

转载 作者:行者123 更新时间:2023-11-30 16:25:00 25 4
gpt4 key购买 nike

我有一个 DataGrid,其列绑定(bind)到 ViewModel Decimal 属性。

当从 ViewModel 添加值时显示十进制值,但当我编辑同一个单元格并删除内容然后添加时,该单元格不接受 句点。那么我该如何编辑单元格。

<DataGrid Name="dgSales" Height="300" Margin="0,3,0,0" IsSynchronizedWithCurrentItem="True" SelectedItem="{Binding SelectedItem,Converter={StaticResource ignoreNewItemPlaceHolderConverter}}" ItemsSource="{Binding StockList,UpdateSourceTrigger=PropertyChanged}" ToolTip="{Binding RelativeSource={RelativeSource Self},Path=(Validation.Errors)[0].ErrorContent}" GotKeyboardFocus="dgSales_GotKeyboardFocus" CurrentCellChanged="dgSales_CurrentCellChanged">
<DataGrid.Columns>
<DataGridTextColumn Header="S No." Width="SizeToCells" MinWidth="60" Binding="{Binding SNo}" IsReadOnly="True" />
<DataGridTemplateColumn Header="Stock Name" Width="280">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding StockName}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox Width="280" Name="cmbStock" ItemsSource="{Binding Path=Stocks}" FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}" ></ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Unit Price" Width="SizeToCells" MinWidth="80" Binding="{Binding UnitPrice,UpdateSourceTrigger=PropertyChanged}" />
<DataGridTextColumn Header="Unit" Width="SizeToCells" MinWidth="80" Binding="{Binding Unit}" IsReadOnly="True"/>
<DataGridTextColumn Header="Quantity" Width="SizeToCells" MinWidth="80" Binding="{Binding Quantity,UpdateSourceTrigger=PropertyChanged}" />
<DataGridTextColumn Header="Discount" Width="SizeToCells" MinWidth="80" Binding="{Binding Discount,UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="Amount" Width="SizeToCells" MinWidth="100" Binding="{Binding Amount,StringFormat=\{0:n2\}}" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>

最佳答案

问题可能是您使用的 UpdateSourceTrigger=PropertyChanged 会在每次击键时重新评估文本,并且以小数点结尾的数字无效。尝试删除 UpdateSourceTrigger 设置(因此恢复为默认设置 - LostFocus)

关于c# - 编辑模式下的 DataGrid 单元格不接受 .(点)作为 WPF MVVM 中的十进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10304961/

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