)私のWPFプロジェクトに奇妙な問題があります。私はにバインドされたObservableCollection<T>
を持っています。アイテムを追加および削除すると、バインディングが機能し、リストに正しい結果が表示されます。ObservableCollection Visibilityバインディングを解除しないでください(
問題は、この同じプロパティを別のXAMLコントロールにバインドすることですが、リストから項目を削除するときにコンバーターをトリガーしません。アイテムを追加すると機能します。
関連するXAMLは
<view:WelcomeView Visibility="{Binding Steps, Converter={StaticResource CollapseIfZero}}"/>
<ListBox ItemsSource="{Binding Steps}" />
され、コンバータは、私は、コンバータでのブレークポイントを持っている
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var col = value as ICollection;
return col.Count == 0 ? Visibility.Visible : Visibility.Collapsed;
}
です。新しい項目が追加されると、ブレークポイントがヒットします。既存のアイテムが削除されると、ブレークポイントはヒットしません。
WPFは私が気付いていないListBox
で何か魔法を尽くしますか(この予期しない動作につながっています)?
と結合するだろうだろう、別のオプションは、私のWelcomeViewがINotifyCollectionChanged' 'に加入することですか? – Dave
@Dave、そうだと思いますが、それは可能ですが、より多くの努力が必要です。必要に応じてWelcomeViewの購読を解除することを確認する必要があります。 – ASh
OnPropertyChanged( "Steps")も起動できます。 (単純な回避策として)あなたのビューモデル内の項目を削除した後、手動で – WPFGermany