【发布时间】:2019-10-27 05:12:20
【问题描述】:
我正在尝试获取组合框所选项目的值,但它返回此“BakeShop.Category”。
namespace BakeShop
{
class Oclist
{
public ObservableCollection<Category> Categories { get; set; }
public Oclist()
{
Categories = new ObservableCollection<Category>
{
new Category() { Name = "Dry Ingridients", Series = new ObservableCollection<string>()
{ "Flour", "Cake Flour", "Baking Soda" } },
new Category() { Name = "Wet Ingridients", Series = new ObservableCollection<string>()
{ "Egg", "Coffee liqueur", "Vodka" } },
new Category() { Name = "Chocolate", Series = new ObservableCollection<string>()
{ "Dark", "Light", "Crushed", "Chips"} }
};
}
}
public class Category
{
public string Name { get; set; }
public ObservableCollection<string> Series { get; set; }
xaml:
<ComboBox x:Name="CategoryCBox"
ItemsSource="{Binding Categories}"
DisplayMemberPath="Name"
MaxDropDownHeight="100"
Height="20" SelectedIndex="0"
FontSize="11"/>
<ComboBox x:Name="TypeCBox"
ItemsSource="{Binding SelectedItem.Series, ElementName=CategoryCBox}"
SelectionChanged="TypeCBox_SelectionChanged"
SelectedIndex="0"
Height="20"
FontSize="11"/>
当我这样做时
string Selected = CategoryCBox.SelectionBoxItem.ToString()
MessageBox.Show(Selected);
它显示“BakeShop.Category”
谢谢大家! :)
【问题讨论】:
-
CategoryCBox中的项目属于BakeShope.Category类型,因此当您尝试访问CategoryCBox.SelectedItem时,它将是该对象,并且执行.ToString()将为您提供类型名称。您想要做的是将SelectedItem转换为Category并访问所需的属性。另外,您是否想从CategoryCBox或TypeCBox获得价值? -
你试过 SelectedValue 吗?
-
@OddmarDam 是的。它具有相同的结果。显示“Bakery.Category
-
@sthotakura 我正在尝试从 CategoryCbox(湿成分、干成分、巧克力)和 TypeCBox(面粉、蛋糕粉、小苏打)系列中获取名称的值,对不起,我是新手我不是很熟悉这些术语..
标签: c# wpf xaml combobox binding