Проблема привязки данных с ComboBox - PullRequest
0 голосов
/ 24 августа 2010

При привязке данных к комбинированному списку необходимо установить 3 элемента:

<ComboBox  ItemsSource="{Binding MyList}" SelectedItem="{Binding MyItem}"  DisplayMemberPath="MyName"   />

Скажем, ItemSource - это список Страны

Во-первых, я установил источник данных на правильный источник.Затем я установил selectedItem для конкретного объекта Country, но он не работает.

Похоже, все должно быть установлено, когда настраивается ItemSource.

Как решить эту проблему?

1 Ответ

0 голосов
/ 24 августа 2010

ОБНОВЛЕНИЕ С РАБОЧИМ КОДОМ

Убедитесь, что вы включили двустороннее связывание для SelectedItem.

<ComboBox ItemsSource="{Binding Path=Countries, Mode=OneWay}" SelectedItem="{Binding Path=SelectedCountry, Mode=TwoWay}" Height="23" HorizontalAlignment="Left" Margin="12,28,0,0" Name="comboBox1" VerticalAlignment="Top" Width="267" />

Вот как будет выглядеть ваш контекст:

public partial class MainPage : UserControl, INotifyPropertyChanged
{
    public MainPage() 
    { 
        InitializeComponent();
        this.Countries = new ObservableCollection<string> { "USA", "CAN" };
        this.DataContext = this;
    }

    public event PropertyChangedEventHandler PropertyChanged;
    public ObservableCollection<string> Countries { get; set; }

    private string _selectedCountry = null;
    public string SelectedCountry
    {
        get { return _selectedCountry; }
        set
        {
            _selectedCountry = value;
            if( this.PropertyChanged != null )
                this.PropertyChanged( this, new PropertyChangedEventArgs( "SelectedCountry" ) );
        }
    }

    private void button1_Click( object sender, RoutedEventArgs e )
    {
        MessageBox.Show( "Selected Country: " + this.SelectedCountry );
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...