-1

私はすべてを正しくしましたか?

public List<string> combolist { get; set; }

...

this.combolist = new List<string>();
MySqlCommand status_db = new MySqlCommand("select name_ru from request_status", conn);
MySqlDataReader combodata = status_db.ExecuteReader();
   while (combodata.Read())
   {
     combolist.Add(combodata.GetString(0));
   }
   this.DataContext = this;

xamlで:

<ComboBox ItemsSource="{Binding Path=combolist}"... 

コンボボックスが空のアイテムですが、何が問題なのですか?

4

2 に答える 2

0

これは機能します:

usercontrol1.xaml

<Grid>
    <ComboBox ItemsSource="{Binding Combolist}" />
</Grid>

usercontrol1.xaml.cs

public partial class UserControl1 : UserControl
{
    public ObservableCollection<string> Combolist { get; private set; }

    public UserControl1()
    {
        this.Combolist = new ObservableCollection<string>();//just initialize once!
        InitializeComponent();
        //if you wanna load new data, call .Clear() before
        //this.Combolist.Clear();
        //MySqlCommand status_db = new MySqlCommand("select name_ru from request_status", conn);
        //MySqlDataReader combodata = status_db.ExecuteReader();
        //while (combodata.Read())
        //{
        //    Combolist.Add(combodata.GetString(0));
        //}

        //test
        this.Combolist.Add("qqqq");
        this.Combolist.Add("wwww");
        this.Combolist.Add("eeee");
        this.Combolist.Add("rrrr");

        this.DataContext = this;
    }
}
于 2012-07-10T13:41:28.177 に答える
0

ObservableCollection を使用する必要があります。InitializeComponent() を呼び出す前に、ObservableCollection をインスタンス化します。

于 2012-07-10T13:28:28.087 に答える