gpt4 book ai didi

c# - 如何同时启用 , 和 .然后将其格式化为 .适用于所有文化中的 DataGridColumn?

转载 作者:太空狗 更新时间:2023-10-29 19:47:43 25 4
gpt4 key购买 nike

无论文化如何,我都需要在可编辑的 DataGridColumn 中接受 .。键入值时,它的格式设置为使用 . 作为小数点分隔符。

目前我只用:

<DataGridTextColumn Header="{StaticResource XpStrSize}" Binding="{Binding Size}" IsReadOnly="False"/> 

ViewModel 中的绑定(bind)属性 Size 是 double 类型。

因此,如果用户输入 100,3,它应该在绑定(bind)属性中更新为 100.3。他也可以输入2.0,应该是2.0。此外,当用户输入 100,3 时,当焦点离开该字段时,它会在列中更新为 100.3。

最佳答案

当您将 double 型(或整型)绑定(bind)到 TextBox(由 DataGridTextColumn 在编辑模式下创建)时,您会遇到限制:您的影响力有限从字符串到字符串的前向和后向转换。获得更多控制权的一种解决方案是引入一个新属性,该属性的类型为字符串,并将您的 double 表示为您想要的格式的字符串。您在 XAML 中绑定(bind)这个新属性,并在您的 View 模型中执行其余的魔术(前向、后向转换)。两个属性在更改时会相互更新。换句话说:XAML 的字符串、模型和 View 模型的 double 连接:

XAML:

<DataGridTextColumn Header="{StaticResource XpStrSize}" Binding="{Binding SizeAsString}" IsReadOnly

View 模型:

private double size;

public double Size
{
get
{
return size;
}
set
{
size = value;
NotifyPropertyChanged ();

sizeAsString = FormatTheDoubleAccordingYourRequirements (size);
NotifyPropertyChanged ("SizeAsString");
}
}

private string sizeAsString;

public string SizeAsString
{
get
{
return sizeAsString;
}
set
{
sizeAsString = value;
Size = ParseTheStringAccordingYourRequirements (sizeAsString);
NotifyPropertyChanged ();
}
}

关于c# - 如何同时启用 , 和 .然后将其格式化为 .适用于所有文化中的 DataGridColumn?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41451734/

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