ComboBox和ObservableCollection的问题<;字符串>;

本文关键字:lt 字符串 gt 问题 ObservableCollection ComboBox | 更新日期: 2023-09-27 18:22:12

这是我的组合框的Xaml:

<ComboBox Grid.Column="4"
          Grid.Row="3"
          ItemsSource="{Binding Path=Users, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type cs:AdvancedSettingEditor}}}"
          Margin="5"
          x:Name="UserPicker"
          SelectedValue="{Binding Path=StandAloneUserName, Mode=TwoWay}"
          TabIndex="1"
          Visibility="{Binding Converter={StaticResource InvertedBoolToVisibility}, Path=LoginRequired}" />

在后面的代码中,我有一个简单的字符串ObservableCollection:

public ObservableCollection<string> Users { get; set; }

Users集合是用数据库中的字符串数据加载的。

还有一个DependencyProperty绑定到窗口的DataContext,该窗口具有一个名为StandAloneUserName的属性。存储在此属性中的对象实现INotifyPropertyChanged。

当我运行程序时,组合框的下拉列表中有Users集合中的所有名称,但该框为空。控件没有丢失字段的值,因此它不知道要显示什么。

如何让我的组合框显示StandAloneUserName属性中的名称?

Tony

ComboBox和ObservableCollection的问题<;字符串>;

设置SelectedItem而不是SelectedValue

<ComboBox SelectedItem="{Binding Path=StandAloneUserName, Mode=TwoWay}" ... />

我假设它被评估为"不存在",因为您没有将SelectedValuePath设置为任何值。