Wpf Combobox DataBinding

时间:2009-12-21 20:15:52

标签: wpf data-binding combobox

大家好,我又来了!我也遇到了一些问题。我正在推出一个培训软件,这就是我提出很多问题的原因。我希望你帮助我。提前致谢。 我的问题如下:

首先:我有一个具有组合框的注册窗口。我已将其绑定为访问数据源。问题是当我选择一个项目时,它不会选择。它写了System.data.Datarow。(我希望它列出像迈克,苏珊等名单。)

我该如何解决?问题出在哪里?

public Register()
{                   
    this.InitializeComponent();
    Select();

}

public void Select()
{

    DataView view;
    OleDbConnection con = new OleDbConnection(connectionstring);
    con.Open();
    string sql = "Select * from UserInformation";
    OleDbCommand cmd = new OleDbCommand(sql, con);
    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds, "UserInformation");
    view = ds.Tables[0].DefaultView;
    RegCombo.ItemsSource = view;

    con.Close();
}

XAML代码:

<ComboBox IsSynchronizedWithCurrentItem="True" 
    Margin="0,22.447,46.92,0" SelectedItem="{Binding Path=UserName}"
    VerticalAlignment="Top" Height="29" Grid.Column="3" Grid.Row="1" 
    IsEditable="True" IsDropDownOpen="False" MaxDropDownHeight="266.666666666667" 
    FontSize="16" x:Name="RegCombo" FontWeight="Normal"  >

    <ComboBox.ItemTemplate>
        <DataTemplate>

            <TextBlock Text="{Binding Path=UserName}"></TextBlock>

        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

2 个答案:

答案 0 :(得分:1)

您需要将ComboBox上的DisplayMemberPath设置为您希望在ItemsControl

中查看的基础对象的属性

如果未指定,并且您没有覆盖该对象上的ToString()方法,您将看到(您现在看到的内容) - 对象的限定名称。

答案 1 :(得分:0)

试试这个 Binding =“{Binding RelativeSource = {RelativeSource Self},Path = UserName}”