2016-04-18 14 views
1

を受け入れていない。私は、ユーザーが列に入力することができ、かつ自然に彼らは0WPFのDataGridColumnは、私は私が電話番号を表示する<code>DataGridTextColumn</code>を持っ0

で始まる番号を入力する必要があります。ただし、ユーザーが0を入力すると、Columnはそれを削除するので、0のない電話番号になります。

enter image description here

これらすべての電話番号が0のを持っていますが、あなたが見ることができるように、彼らはDataGridによって削除されました。 DataGridColumnに0を保存するにはどうすればよいですか?

EDIT: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> 
+1

XAMLを表示できますか?あなたはコードの中でこれをやっていますか? – MikeT

+0

@MikeTこんにちはマイク、私は私のXAMLに – CBreeze

+0

を追加しましたが、PhoneNumberが文字列フィールドであることを確認するだけですか? – MikeT

答えて

3

ゼロをリード節約するためにstring種類、ないintegerに電話番号を保存することをお勧めします。

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変数に格納する必要があります。

関連する問題