Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF的组合框中获取属性值_C#_Wpf - Fatal编程技术网

C# 在WPF的组合框中获取属性值

C# 在WPF的组合框中获取属性值,c#,wpf,C#,Wpf,我有一个组合框,它绑定到列表(从数据库,使用实体框架)。我想在comboBox的SelectionChanged上获取所选项目(对象)的AdId public class Ad { public int AdId { get; set; } public string AdContent { get; set; } } private void ComboBox_SelectionChanged(object sender, SelectionChanged

我有一个
组合框
,它绑定到列表(从数据库,使用实体框架)。我想在comboBox的
SelectionChanged
上获取所选项目(对象)的
AdId

public class Ad
{          
    public int AdId { get; set; }
    public string AdContent { get; set; }
}

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox cmd = (ComboBox) sender;
    int AdId = cmd.SelectedItem;

    ???????????? I'm stuck here how to get AdId from SelectedItem... tried SelectedValue and SelectedValuePath... didn't work
}

组合框的
cmd.SelectedItem
属性将返回一个对象,您可以将它们强制转换为您自己的业务对象。然后您可以轻松访问其属性,如下所示:

int AdId = ((Ad)cmd.SelectedItem).AdId ;
string AdContent =  ((Ad)cmd.SelectedItem).AdContent; 

组合框的
cmd.SelectedItem
属性将返回一个对象,您可以将它们强制转换为您自己的业务对象。然后您可以轻松访问其属性,如下所示:

int AdId = ((Ad)cmd.SelectedItem).AdId ;
string AdContent =  ((Ad)cmd.SelectedItem).AdContent; 

设置
SelectedValuePath=“AdId”

并从代码中获取所选值,如下所示:

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox cmd = (ComboBox) sender;
    int AdId = (int)cmd.SelectedValue;


}

设置
SelectedValuePath=“AdId”

并从代码中获取所选值,如下所示:

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox cmd = (ComboBox) sender;
    int AdId = (int)cmd.SelectedValue;


}

在这种情况下,所选值的类型将是
Ad
,而不是像您一样的intexpected@un-幸运的是,如果我们设置'SelectedValuePath=“AdId”',结果将仅为int。它不会返回类型“Ad”。在测试成功完成后,我将发布答案。@un lucky Yes buddy。如果他下次需要其他(2个或更多)参数,该怎么办?@un lucky您应该设置SelectedValuePath=“AdId”并选中此选项。在这种情况下,所选值的类型将为
Ad
,而不是intexpected@un-如果我们设置“SelectedValuePath=“AdId”,那就太幸运了'结果将仅为int。它不会返回类型“Ad”。成功完成测试后,我将发布答案。@un lucky Yes buddy。如果他下次需要其他(2个或更多)参数,该怎么办?@un lucky您应该设置SelectedValuePath=“AdId”并检查