gpt4 book ai didi

c# - WPF DataGridColumn 不接受 0

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

我有一个 DataGridTextColumn,我想在其中显示电话号码。我允许用户在该列中键入内容,他们自然需要键入以 0 开头的数字。

但是,每当用户输入 0 时,列都会将其删除,因此它只是一个没有 0 的电话号码。例如;

enter image description here

所有这些电话号码中都有 0,但如您所见,它们已被 DataGrid 删除。如何在我的 DataGridColumn 中保留 0?

编辑:xaml

<DataGrid Grid.Row="1" x:Name="companyDataGrid" FontSize="14" CanUserAddRows="True" AutoGenerateColumns="False" HeadersVisibility="Column"
EnableRowVirtualization="True" RowEditEnding="OnSubcontractorDataGridRowEditEnding" SelectionChanged="OnSubcontractorGridSelectionChanged">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Width="*" Binding="{Binding Name, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="Package" Width="*" Binding="{Binding Package, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="Telephone" Width="*" Binding="{Binding PhoneNumber, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="Email" Width="*" Binding="{Binding Email, UpdateSourceTrigger=PropertyChanged}"/>
</DataGrid.Columns>
</DataGrid>

最佳答案

为了节省前导零,最好将电话号码存储为string类型,而不是integer

C# 自动删除 int 值中的前导零。你可以测试一下:

string value = "01";
int i = int.Parse(value);
//Debugger says i=1 cause it is integer

如果您将数字存储在字符串中,则结果为:

string str = string.Format("{0:(000) 000-0000 x 000}",      
double.Parse("0234567890123"));

将导致“(023) 456-7890 x 123”

所以如果你想在电话号码中保持前导零,你应该将它存储在 string 变量中。

关于c# - WPF DataGridColumn 不接受 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36689611/

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