C# WPF组合框使用数据库中的selectedValue绑定SQL

C# WPF组合框使用数据库中的selectedValue绑定SQL,c#,wpf,C#,Wpf,我有两张桌子。 表1通过表2ID与表2链接 我需要一个组合框来加载表2中的所有数据,并显示如表1所示的初始选择 下面的代码只能加载表2中的所有数据,但不能显示如表1所示的所选数据 有人能帮我吗? 谢谢 在该图中,当windows首次加载时,组合框应显示“Sinog Wan Trading” Table1 ID Name Table2ID 1 Hello 1 2 World 1 3 User 2 Table2 ID Name 1 ABC 2 DEF

我有两张桌子。 表1通过表2ID与表2链接

我需要一个组合框来加载表2中的所有数据,并显示如表1所示的初始选择

下面的代码只能加载表2中的所有数据,但不能显示如表1所示的所选数据

有人能帮我吗? 谢谢

在该图中,当windows首次加载时,组合框应显示“Sinog Wan Trading”

Table1
ID  Name    Table2ID
1   Hello   1
2   World   1
3   User    2

Table2
ID  Name
1   ABC
2   DEF

private DataSet getData()
        {
            SqlConnection conn = new SqlConnection(ConnectionString);
            SqlDataAdapter da = new SqlDataAdapter("usp_getalldata", conn);
            DataSet ds = new DataSet();
            da.Fill(ds, "DATA");
            return ds;
        }
public Details()
    {
        InitializeComponent();
        DataSet ds = getData();
        DataTable dt = ds.Tables[0];
        this.combobox.ItemsSource = ((IListSource)dt).GetList();
        this.combobox.DisplayMemberPath = "Name";
        this.combobox.SelectedValuePath = "ID";
}
在XAML中,您应该将其作为
组合框
项源

下面是一个如何使用它的示例

<UserControl.Resources>
    <ObjectDataProvider x:Key="MyDataSource" ObjectType="{x:Type my:StaticDataSource}" MethodName="GetMyData"/>
</UserControl.Resources>

...

<ComboBox ItemsSource="{Binding Source={StaticResource MyDataSource}}" SelectedValue="{Binding Table2ID}"/>
使用上面的方法,效果很好。
谢谢您的帮助。

你好,纪尧姆,我可以在组合框中显示Table2记录,但是我需要如表1的Table2ID所示的comboxbox初始选定值。您需要将
ComboBox
SelectedValue
SelectedItem
属性绑定到
Table1
对象的相应属性。在你的问题中,你的代码中没有这样的东西。
public class MyDataSource
{
    private static IEnumerable<Table2> myData;

    public MyDataSource(IEnumerable<Table2> data)
    {
        myData = data;
    }

    public static IEnumerable<Table2> GetMyData()
    {
        return myData;
    }
}
    this.combobox.SelectedValue = Table2ID;