ComboBox Selected Value - 与字符串

时间:2018-03-12 15:53:28

标签: c# combobox uwp selecteditem selectedvalue

如何以编程方式在C#UWP中设置ComboBox的SelectedValue或SelectedItem? 我有一个绑定到字符串列表的ComboBox,我希望它自动选择与其他列表中的字符串匹配的字符串。

ObservableCollection<Products> DB_Products = new ObservableCollection<Products>();
ReadAllProductsList dbproducts = new ReadAllProductsList();
DB_Products = dbproducts.GetAllProducts();
List<Products> productsList = new List<Products>();
productsList = DB_Products.ToList();

未知

ComboBox1.SelectedItem = productList[0].ProductName.ToString() ;

或类似的东西:

ComboBox1.SelectedItem = ComboBox.SelectedItem.Where(ComboBox => ComboBox.SelectedItem == productList[0].ProductName.ToString());

或:

ComboBox1.SelectedItem = DB_SelectorList.Where(DB_SelectorList => DB_SelectorList.ProductName == productList[0].ProductName.ToString());

1 个答案:

答案 0 :(得分:2)

它完全取决于您使用ItemsSource控件的实际ComboBox

如果您设置ComboBox1.ItemsSource = productsList;每个项目的类型为Products(我建议将其重命名为Product,因为它会让人感到困惑,因为实例代表一个产品,而不是多个产品)您必须将SelectedItem设置为您要选择的产品:

ComboBox1.SelectedItem = productsList[2]; //select the third item

您还可以设置应选择的索引:

ComboBox1.SelectedIndex = 2; //select the third item

为什么你的方法不起作用

第一种方法

ComboBox1.SelectedItem = productList[0].ProductName.ToString();

您要将SelectedItem设置为ProductName Products项的属性ComboBox,但Products绑定到ComboBox1.SelectedItem = ComboBox.SelectedItem.Where( ComboBox => ComboBox.SelectedItem == productList[0].ProductName.ToString()); //and ComboBox1.SelectedItem = DB_SelectorList.Where( DB_SelectorList => DB_SelectorList.ProductName == productList[0].ProductName.ToString()); 列表,它没有比较个别属性。

第二和第三种方法

Where

这两个更接近,但还不是完整的解决方案。 IEnumerable<T>方法是LINQ扩展方法,在这种情况下返回IEnumerable<Products> Where。原因是.FirstOrDefault()可能会返回多个结果。如果你想使这个工作,你必须在分号之前附加SelectedItem以获取第一个结果,例如。在任何情况下,您的目标都是将Products属性设置为单个“Product”的实例(同样,名称会更好SelectedItem = listBoundToComboBox.FirstOrDefault( p => some condition ); :-))

您可以使用的解决方案是:

.
├── file_a.py
├── file_b
│   └── __init__.py
└── file_b.py