【发布时间】:2014-08-28 23:11:44
【问题描述】:
我无法在 DataGridTextColumn 中输入十进制值。下面的链接表明,如果 UpdateSourceTrigger = PropertyChanged,我们不能输入十进制值。
WPF DataGridTextColumn binding doesn't accept decimals
但我的要求是我必须保持 UpdateSourceTrigger = PropertyChanged。
请提出建议。
下面是我的 Datagrid 的代码 sn-p:
<DataGrid x:Name="MyDataGrid" HorizontalAlignment="Left" CanUserResizeColumns="True" VerticalAlignment="Stretch" ItemsSource="{Binding MyDataCollectionListView, Mode=TwoWay}"
SelectionMode="Extended" IsSynchronizedWithCurrentItem="True" SelectionUnit="Cell">
<DataGrid.Columns>
<DataGridTextColumn x:Name="ColMyDataGrid" Header="Price" Binding="{Binding Path=Price, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, Converter={StaticResource ZeroToEmptyConverter}}" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Right" />
<Setter Property="Background" Value="#BEFAC4"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
【问题讨论】:
-
必须是
UpdateSourceTrigger=PropertyChanged吗? -
您是否也尝试绑定到模板列中的文本框?
-
你也可以在这里添加
ZeroToEmptyConverter的代码吗? -
最终我不得不将 UpdateSoruceTrigger 属性更改为 LostFocus。没有其他选择适合我。仍在为这种情况寻找任何解决方案。谢谢。
标签: wpf wpfdatagrid wpftoolkit wpf-4.0