【问题标题】:Select first item in ComboBox when it becomes visible当它变得可见时选择 ComboBox 中的第一个项目
【发布时间】:2012-03-26 23:14:53
【问题描述】:

我在 Silverlight 应用程序中有一个 ComboBox,它使用数据绑定根据 ViewModel 中的属性值更改其可见性。这是组合框 XAML:

<ComboBox x:Name="Combo1" ... 
          Visibility="{Binding MyProperty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}">
   ... Some hard coded ComboBoxItems ...
</ComboBox>

BooleanToVisibilityConverter 是一个转换器类,可将布尔值转换为适当的可见性值以显示/隐藏组合框。

这很好用,但是我想做的是每当 ComboBox 变得可见时,我想选择第一个项目。因此,如果用户从 ComboBox 中选择一个项目,然后操作表单以隐藏 ComboBox,然后进行更改以重新显示 ComboBox,我希望 ComboBox 显示第一个项目而不是用户选择的项目。

谢谢!

【问题讨论】:

    标签: silverlight combobox


    【解决方案1】:

    这是一个经典场景,MVVM 模式可以帮助您,而不是使用转换器。您的视图模型可能包含一个 Visibility 属性,该属性是绑定到您的 ComboBox 的 Visible 属性的数据。然后在绑定 Visibility 属性的设置器中(在您的视图模型上),您可以在您的视图模型上调用一个方法,该方法选择了 ComboBox 中的第一个项目。下面是一个示例:How can you get a XAML TextBlock in WP7 Silverlight to collapse when it contains no data?

    您的 ComboBox 绑定到的集合以及 ComboBox 的选定项也可以在您的视图模型上并通过数据绑定连接到您的视图,从而允许一切都发生在您的视图模型中,以及设置您自己很好地对您正在寻找的行为进行单元测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 2020-07-20
      • 2021-04-11
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多