c# - 组合框默认值

标签 c# wpf xaml mvvm

我想使用组合框,下面的代码可以正常工作,但现在我想 添加到组合框标题默认值,即有值(value)和喜欢 项目,当您打开它时,您可以选择更改它,我该怎么做?

<ComboBox  ItemsSource="{Binding Items}" SelectedValue="{Binding SelectedItem}"  
 Name="comboBox1" Text="Item" Grid.Column="3" Grid.Row="2" />

代码

private List<String> _items;
private String _selectedItem;
private String _selectedBusinessItem;
public List<String> Items
{
    get { return _items; }
    set
    {
        _items = value;
        OnPropertyChanged("Items");
    }
}

public String SelectedItem1
{
    get { return _selectedItem; }
    set
    {
        _selectedItem = value;
        OnPropertyChanged("Items");
    }
}

private void InitCombo()
{
    Items = new List<string> { "item",  "Item2", "Item3" };
    SelectedItem1 = Items[0];
}

最佳答案

很难理解您的要求,但我认为您只是在寻找 ComboBox 来显示 Items 集合中的第一个值。

我相信您可以通过几种方式做到这一点。

首先,您需要修复 SelectedValue 绑定(bind)以匹配您的属性名称,并删除 Text="Item":

<ComboBox  ItemsSource="{Binding Items}" SelectedValue="{Binding SelectedItem1}"  
           Name="comboBox1" Grid.Column="3" Grid.Row="2" />

从您的代码中,您可以将您拥有的 SelectedValue1 属性设置为任何 string 项目。这方面的例子:

SelectedValue1 = "item";

-或-

SelectedValue1 = Items.FirstOrDefault();

我使用 FirstOrDefault 作为安全措施,以防这些项目不存在。

-或-

SelectedValue1 = Items[0];

这里还有几个选项。但我会尝试限制答案的范围。

此外,您应该能够将 ComboBox.SelectedIndex 设置为 0。

<ComboBox  ItemsSource="{Binding Items}" SelectedValue="{Binding SelectedItem1}"  
           Name="comboBox1" Grid.Column="3" Grid.Row="2"
           SelectedIndex="0"/>

关于c# - 组合框默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21459083/

相关文章:

c# - WPF - 使用 DataTemplate 时通过键入选择 ComboBox 值

c# - DependencyProperty ValidateValueCallback 问题

c# - 在 Windows Phone 8.1 XAML 中检测停用和应用程序关闭

xaml - 绑定(bind)到 Xamarin 表单中的附加属性

c# - 如何通过 sharpshell 为回收站添加 shell 上下文菜单?

c# - 如何使用 html.ValidationMessageFor

c# - Ninject:如何在 "ashx"文件中不使用 Ninject 并且仍然没有得到异常?

.net - .net 中的空引用异常

c# - 如何在 C# 中使用 XAML 中定义的画笔资源

c# - Tendermint、GRPC 和 C# - 流被 RST_STREAM 终止,错误代码为 : PROTOCOL_ERROR