【问题标题】:Displaying Specific values in WPF Combobox在 WPF 组合框中显示特定值
【发布时间】:2013-12-21 00:00:38
【问题描述】:

在我的组合框中,我添加了 ItemsSource,它是 SelectedItem 的集合。加载屏幕时如何在组合框中默认显示任何项目?

【问题讨论】:

  • SelectedItem 绑定到ItemsSource 中的对象之一。不工作吗?

标签: c# wpf


【解决方案1】:

您是否正在寻找一种默认选择第一项的方法?如果是这样,请尝试以下代码:

<ComboBox SelectedIndex="0">

否则,您应该创建一个属性来存储当前选定的项目并绑定到它:

<ComboBox ItemsSource="{Binding Items}" SelectedItem="{Binding CurrentlySelectedItem}">

【讨论】:

  • 我只添加了这样的内容。 “项目”是我第一次设置值并获取所选项目名称的可观察集合,但不知道为什么它第二次点击设置属性并且值变为空。因此,在加载页面时,默认情况下不会在组合框中选择值。
【解决方案2】:

如果您使用的是绑定,即

<ComboBox ItemsSource="{Binding SlowLoadingCollection}"/>

然后您可以添加一个FallbackValue,当无法访问该集合时将使用该FallbackValue

<ComboBox ItemsSource="{Binding SlowLoadingCollection, FallbackValue='Please wait'}"/>

你可以用类似的东西来测试这个

DataContext.SlowLoadingCollection = null; // No collection, so will display fallback
this.OnLoaded += () =>
{
   Task.Run(()=>
   {
      Task.Delay(10000); // 10 second delay to simulate loading
      DataContext.SlowLoadingCollection = new []{ "Hello", "World", "!"};
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    相关资源
    最近更新 更多