проблема привязки данных в поле со списком в Silverlight - PullRequest
0 голосов
/ 12 мая 2011

Я загружаю 5 комбо-боксов на свою страницу и загружаю свои 4 комбо-бокса без каких-либо проблем, но пятый дает мне ад ..

я опубликую код, который я сделалздесь ... пожалуйста, поправьте меня, если я ошибаюсь.

<ComboBox Height="23" HorizontalAlignment="Left" Margin="605,131,0,0"
  Name="Cboadproducts" VerticalAlignment="Top" Width="168"    TabIndex="3" 
  DisplayMemberPath="AdProduct" SelectedValuePath="AdProdctID" />

Код: -

   Cboadproducts.ItemsSource = null;
   List<MyRef.Country> list = ee.Result.ToList();
   list.Insert(0, new MyRef.Country() { AdProduct = "Select", AdProdctID = -1 });
   Cboadproducts.ItemsSource = list;

Я получаю значение от DB, но я не знаю, что вызывает эту проблему.. Любая помощь высоко ценится.Спасибо, Магз

1 Ответ

0 голосов
/ 12 мая 2011

Набор ItemsSource="{Binding}" в xaml

и

набор Cboadproducts.DataContext = list; в коде

РЕДАКТИРОВАНИЕ

Код:

public class Country
{
    public int AdProductID
    {
        get;
        set;
    }
    public string AdProduct
    {
        get;
        set;
    }
}
public Window1()
{
    InitializeComponent();

    List<Country> list = new List<Country>
    {
        new Country{ AdProduct="Select", AdProductID = -1},
        new Country{ AdProduct="Select1", AdProductID = 1},
        new Country{ AdProduct="Select2", AdProductID = 2},
        new Country{ AdProduct="Select3", AdProductID = 3},
        new Country{ AdProduct="Select4", AdProductID = 4},
    };

    Cboadproducts.DataContext = list;
}

XAML:

    <ComboBox Height="23"

              x:Name="Cboadproducts"
              ItemsSource="{Binding}"
              VerticalAlignment="Top"
              Width="168"
              TabIndex="3"
              DisplayMemberPath="AdProduct"
              SelectedValuePath="AdProdctID" />

РЕДАКТИРОВАТЬ II

Для загрузки другой коллекции:

В коде либо Cboadproducts.DataContext = differentList;

или

вместо использования Списка используйте ObservableCollection и удаляйте элементы из коллекции с помощью Clear() и добавляйте другие элементы с помощью Add()

ObservableCollection реализует INotifyCollectionChanged, которыйуведомляет элемент управления об изменении коллекции, а затем вызывает обновление пользовательского интерфейса.

...