我有一个DataGridTextColumn
我要显示一个电话号码。我允许用户输入列,当然他们需要输入一个以0开头的数字。
但是,每当用户键入0时,列都会将其删除,因此它只是一个不带0的电话号码。例如;
所有这些电话号码都有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>
答案 0 :(得分:3)
最好将电话号码存储到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
变量中。