我的任务是向已经存在的 WPF 表单添加一个组合框。我从来没有使用过 WPF,我很迷茫,特别是在绑定和使用 ObservableCollection 属性时。所有的例子都与我被告知这样做的方式完全不同。
我最初的组合框是这样设置的:
<ComboBox Name="GroupComboBox" Width="132" Height="22" Grid.Column="0" Grid.Row="3" Margin="0,30" VerticalAlignment="Top" >
<ComboBoxItem Content="Data Warehouse"></ComboBoxItem>
<ComboBoxItem Content="KPI"></ComboBoxItem>
<ComboBoxItem Content="Failures"></ComboBoxItem>
<ComboBoxItem Content="All Groups"></ComboBoxItem>
</ComboBox>
效果很好。这是当我被告知我必须摆脱所有 ComboBoxItem 内容并将组合框绑定到 ObservableCollectionGroups 和 ObservableCollectionSelectedGroups 时,我所要做的就是将其添加到 ViewModel 类中:
public ObservableCollection<string> Groups { get; set; }
public ObservableCollection<string> SelectedGroups { get; set; }
好的,所以我将上面的内容添加到视图模型类中,如下所示:
public class ClioViewModel : INotifyPropertyChanged
{
public ObservableCollection<string> Groups { get; set; }
public ObservableCollection<string> SelectedGroups { get; set; }
}
(这门课上还有很多其他的东西,但是为了时间和空间,我没有发布它。如果需要,如果需要,我很乐意添加更多内容)
然后我将我的 xaml 更改为如下所示:
<ComboBox Name="GroupComboBox" ItemsSource="{Binding Groups}" SelectedItem=" Binding SelectedGroups, Mode=TwoWay}" Width="132" Height="22" Grid.Column="0" Grid.Row="3" Margin="0,30" VerticalAlignment="Top" >
</ComboBox>
这没有用。当然没用!我没有在我的组合框中列出任何我想要的项目!问题是,如果它们不属于组合框内部并且它们没有被放入 Group/Selected 组属性中,那么它们到底去哪里了?我见过的众多组合框绑定示例中没有一个看起来像我被告知要做的事情。
如果有人能启发我了解我所缺少的东西,我将不胜感激。