ユーザーがたとえば310312と入力して、datepickerのtextプロパティを31/03/12に自動的に更新できるようにしたいと思います。以下のように、datepickerをビューモデルの「Date」プロパティにバインドしました。
WPF4.0では、バインディングはセットの後に自動的にgetを実行するようになりました(INotifyPropertyChangedは必要ありません)。これは以下のコードで発生していますが、「get」日付フィールド値は正しい「31/03/12」ですが、datepickerテキストプロパティは更新されておらず、310312(NB UpdateSourceTrigger = PropertyChanged)のままです。
textboxプロパティは変更されます(たとえば、表示されていない設定コードが大文字に変換される場合)
これがなぜであるかについて、私は本当にいくつかの指針をいただければ幸いです。
       <Grid>
        <DatePicker Text="{Binding Path=Date,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 
            Height="25" HorizontalAlignment="Left" Name="datePicker1"/>
        <TextBox Text="{Binding Path=State,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"  Height="23" HorizontalAlignment="Left"  Name="textBox1" />
    </Grid>
        private string date;
        public string Date
        {
            get
            {
                return date;
            }
            set
            {
                if (value != null)
                {
                    Regex abbreviatedDateFormat = new Regex(@"\A\d{6}\Z");
                    if (abbreviatedDateFormat.IsMatch(value))
                    {
                        value = value.Insert(2, "/");
                        value = value.Insert(5, "/");
                    }
                }
                date = value;                    
            }
        }