Установка DisplayMemberPath ComboBox в коде - PullRequest
0 голосов
/ 27 ноября 2011

В моей программе WPF у меня есть:

        string queryString = "Select AccountID, ProjectName from Foo where IsEnabled = 1";
        SqlDataAdapter adapter = new SqlDataAdapter(queryString, sConn1);
        DataSet dsAccounts = new DataSet();
        adapter.Fill(dsAccounts, "Accounts");

        cbAccount.ItemsSource = dsAccounts.Tables["Accounts"].AsEnumerable();
        cbAccount.DisplayMemberPath = "ProjectName";

Когда моя программа запускается, и я раскрываю ComboBox, все строки есть, но они отображаются как пробелы. Когда я нажимаю на строку, мой обработчик событий SelectionChanged правильно идентифицирует выбранную строку и выбирает правильные значения.

Я считаю, что моя проблема с DisplayMemberPath.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 17 июня 2014

Я считаю, что проблема заключается в том, что ваши учетные записи в таблицах не сериализуются в объекты.

Если вы используете список учетных записей вместо таблиц, то он отлично работает с ItemsSource и DisplayMemeberPath.

0 голосов
/ 28 ноября 2011

Это не ответ, а скорее обходной путь.Это работает:

        cbAccount.DataContext = dsAccounts.Tables["Accounts"];
        //cbAccount.ItemsSource = dsAccounts.Tables["Accounts"].AsEnumerable();
        cbAccount.DisplayMemberPath = "ProjectName";

Устанавливая DataContext вместо ItemSource, тогда DisplayMemberPath устанавливается правильно.

Вопрос остается открытым, должен быть способ правильно установить DisplayMemberPath, когдаодин имеет ItemSource, а не DataContext.

...