我有一个 ObservableCollection 字符串,我正在尝试将它与转换器绑定到 ListBox 并仅显示以某个前缀开头的字符串。
我写:
public ObservableCollection<string> Names { get; set; }
public MainWindow()
{
InitializeComponent();
Names= new ObservableCollection<Names>();
DataContext = this;
}
和转换器:
class NamesListConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return null;
return (value as ICollection<string>).Where((x) => x.StartsWith("A"));
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
和 XAML:
<ListBox x:Name="filesList" ItemsSource="{Binding Path=Names, Converter={StaticResource NamesListConverter}}" />
但是列表框在更新(添加或删除)后不会更新。
我注意到,如果我将转换器从绑定中移除,它会完美地工作。我的代码有什么问题?