0
これは本当に独特です。私は単純なデータバインディングのサンプルプログラムを試しました。コレクション(IList)をリストボックスにバインドしようとしました。コレクションを変更すると、リストボックスは、ウィンドウを最大化する場合にのみ更新されます。ここにスニペットがあります。wpfでウィンドウを最大化した後に反映されるデータソース
<ListBox x:Name="myBirthdaysListBox" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<UniformGrid>
<Label Content="{Binding Name}"></Label>
<Label Content="{Binding DateOfBirth}"></Label>
</UniformGrid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
public Window1()
{
InitializeComponent();
myCalendar = new List<Calendar>();
myBirthdaysListBox.DataContext = myCalendar;
}
私はwpfの初心者です。私がここでひどく間違ったことをした場合、私に知らせてください。
を変更した場合バインディングリストが通知されていることをご
Calendar
な上INotifyPropertyChanged
を実装する必要があると信じて、これは動作しているようです(私がするBindingListでリストを置き換え)。リストに固執したい場合、カレンダークラスはINotifyPropertyChangedインターフェイスを継承する必要がありますか?私はそうしたが効果はない。なぜ私に説明できますか? – sudarsanyesINotifyPropertyChangedの実装はどのようになっていますか? –
if(PropertyChanged!= null){PropertyChanged(this、新しいPropertyChangedEventArgs( "Name")); PropertyChanged(これ、新しいPropertyChangedEventArgs( "DateOfBirth")); }これは、フィールドの値を設定できる唯一の場所として、Calendarクラスのコンストラクタにこれを追加しました。だから私は両方のフィールドのPropertyChangedを募集している – sudarsanyes