我的 Window.xaml 中有一个组合框,我使用它的属性 SelectedIndex 进行初始化,其值为 0,它的属性 SelectedItem 具有与视图模型属性的绑定。
听起来很简单,基本上是这样的:
<ComboBox SelectedItem = "{Binding MyChosenItem}" SelectedIndex="0" ItemsSource={Binding MyList} />
现在在我的 MyList 中,这是一个简单的字符串列表,第一个条目看起来像这样:“---NULL--”。它只是一个静态条目,表明用户尚未选择任何内容。
一旦我启动我的应用程序,组合框将其 SelectedItem 设置为“---NULL---”,因为 SelectedIndex = 0 并且 MyChosenItem 也设置为“---NULL---”,因为那是组合框的 SelectedItem。
到目前为止一切都很好,但现在我想撕裂组合框以知道一旦我在 MyChosenItem 中有一个值,组合框可能不会将选择设置为“---NULL---”。
这是一个例子:
如果 MyChosenItem = null 则 Combobox 应选择“---NULL---”作为标准值,但当 MyChosenItem =“BMW”时,组合框应选择 BMW 作为所选项目,这是 MyList 中的第 4 个项目。
如何在 WPF 中执行此操作?问题是 SelectedIndex 总是尝试将第一项设置为选定项,但我需要第四项。在设置第一个项目后,我是否需要时间旅行到该点,然后将组合框的 SelectedItem 设置为第四个?
有任何想法吗?过去有人偶然发现过这个吗?
编辑:我忘了提到组合框是第三方控件,他们以某种方式手动设置 SelectedIndex = 0 所以我没有机会改变它。因此,我请求你们坚持这个问题中给出的要求,我希望有人想办法解决这个问题,或者至少是一个很好的解决方法。