Как привязать SelectedItem (из ListBox) к переменной? - PullRequest
1 голос
/ 12 ноября 2010

Я работаю над своим первым приложением WP7, и эта проблема вызывает у меня головную боль.

Я определил ListBox следующим образом

    <ListBox Grid.Row="1" ItemsSource="{Binding MyItemList}" SelectedItem="{Binding MySelectedItem}">
        <ListBox.ItemTemplate>
            <DataTemplate >
                <StackPanel>
                    <TextBlock Text="{Binding Name}" FontSize="35" />
                    <TextBlock Text="{Binding Details}" FontSize="15"/>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Привязка ItemsSource работает нормально, но MySelectedItem-Property не обновляется при выборе элемента. Эта функция не реализована (как в WPF) или я просто что-то делаю? : -)

Ответы [ 3 ]

6 голосов
/ 12 ноября 2010

Просто используйте -

SelectedItem="{Binding MySelectedItem, Mode=TwoWay}" и все должно быть в порядке.

0 голосов
/ 12 ноября 2010

Это мой обходной путь. Надеюсь, кто-нибудь опубликует более элегантное решение.

XAML:

 <ListBox Name="DecksListBox" ItemsSource="{Binding MyItemsList}"
          SelectionChanged="UpdateSelectedItem"

Кодовый код:

    private void UpdateSelectedItem(object sender, SelectionChangedEventArgs e)
    {
        // Ignore if there is no selection
        if (DecksListBox.SelectedIndex == -1)
            return;
        App.ViewModel.MySelectedItem = App.ViewModel.MyItemsList[DecksListBox.SelectedIndex];
    }

Возможнотем временем это может кому-то помочь.

0 голосов
/ 12 ноября 2010

Возможно, вам придется установить IsSynchronizedWithCurrentItem="True" для вашего ListBox.

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