2016-04-13 8 views
1

DataGridがあり、列の上には簡単なDataGridTextColumnがあります。私がしたいのは、ユーザがDataGridの行に入力しているときに、特定の形式(この場合はdd/MM/yyyy)を入力できるようにすることです。私はそれらのために/ /を入力するでしょう、そして、彼らはこのフォーマットに合う日付をタイプしなければなりません。ユーザーが入力したときのDataGrid列の書式

これは私のDataGridColumnです。

<DataGridTextColumn Header="Date" Width="*"/> 

入力時にColumnをフォーマットする方法はありますか?

+0

DateTime.ParseExact(...);によって解析。通常、情報を入力するための別のフォームを作成し、2番目のフォーム入力をDataGridにコピーすることをお勧めします。 – jdweng

答えて

1

WPFにはMaskedTextBoxが組み込まれていません。ただし、MaskedTextBoxまたはDateTimePickerから拡張WPFツールキットを使用できます。

DateTimePickerを拡張WPFツールキットとMaskedTextBoxから表示したいと思います。 enter image description here

更新:

確かに、あなたはWPF Extended Toolkitライブラリを使用するxmlnsに仮名を作成し、その後Extended WPF ToolKit through Nuget.

をダウンロードし、最初にDateTimePickerからDataGrid

を追加することができます

<Window 
... 
xmlns:wpfTool="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="350" Width="525"> 
<Window.DataContext> 
    <vm:MainWindowViewModel/> 
</Window.DataContext> 
<Grid>   
    <DataGrid ItemsSource="{Binding Persons}" AutoGenerateColumns="False"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="ID" Binding="{Binding IdPerson}"/> 
      <DataGridTextColumn Header="Name" Binding="{Binding Name}"/>         
      <DataGridTemplateColumn> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate>       
          <wpfTool:DateTimePicker Value="{Binding MyDate}"/> 
         </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate>      
      </DataGridTemplateColumn>     
     </DataGrid.Columns> 
    </DataGrid> 
</Window> 

とモデルクラス:

public class Person 
{ 
    public int IdPerson { get; set; } 
    public string Name { get; set; } 
    public DateTime FirstDate { get; set; } 
} 

OR:

だけWPF Extended ToolkitからMask="00-00-0000"MaskedTextBoxを使用しています。例えば:次に

<DataGrid ItemsSource="{Binding Persons}" AutoGenerateColumns="False"> 
    <DataGrid.Columns> 
    <DataGridTextColumn Header="ID" Binding="{Binding IdPerson}"/> 
    <DataGridTextColumn Header="Name" Binding="{Binding Name}"/>         
    <DataGridTemplateColumn> 
     <DataGridTemplateColumn.CellTemplate> 
      <DataTemplate>         
      <wpfTool:MaskedTextBox Mask="00-00-0000" Text="{Binding CheckDateTime}"/>       
      </DataTemplate> 
     </DataGridTemplateColumn.CellTemplate>      
    </DataGridTemplateColumn>     
    </DataGrid.Columns> 
</DataGrid> 

とをデータグリッドで編集が悪いCheckDateTime

+0

DataGridの内部で使用できますか? – CBreeze

+0

@Cブリーズは、私の更新されたセクションを参照してください – StepUp

+0

@CBreezeは自由に質問します。私の返事があなたに役立つと感じたら、私の返事を答えとしてマークして、将来の他の人の検索を簡単にすることができます。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-workをご覧ください。 – StepUp

関連する問題