После того как вызывается EventToCommand, для выбранного элемента данных возвращается значение null - PullRequest
1 голос
/ 10 января 2011

У меня есть приложение Silverlight 4, созданное в MVVMLight.
В представлении у меня есть DataGrid, который привязан к моей ViewModel, у которого SeletedItem снова привязан к SelectedItem в моей ViwModel:

<sdk:DataGrid Name="MyGrid"  AutoGenerateColumns="False" Grid.Row="3"  MaxHeight="200"  HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" RowHeight="35" 
                      SelectedItem="{Binding SelectedItem, Mode=TwoWay, ValidatesOnNotifyDataErrors=False}" ItemsSource="{Binding Items}" >

Это все работает так же, как и в случае, когда я нажимаю на элемент в сетке, SelectedItem в моей ViewModel установлен правильно.

Теперь я добавил кнопку в строки в Datagrid и добавил EventToCommand к кнопке, которая привязана к той же модели представления:

<Button Content="Update" >
  <i:Interaction.Triggers>
      <i:EventTrigger EventName="Click">
          <Command:EventToCommand Command="{Binding Source={StaticResource Locator}, Path=MainDialog.ButtonCommand, Mode=TwoWay}" />
       </i:EventTrigger>
    </i:Interaction.Triggers>

Эта команда запускается и работает правильно. Проблема Свойство SelectedItem, которое было установлено ранее и которое я теперь хочу использовать, установлено в значение null !!

Почему EventToCommand сбрасывает свойство SelecteedItem и как его остановить, чтобы я мог его использовать ???

1 Ответ

0 голосов
/ 11 января 2011

Вы должны поделиться своим кодом, чтобы мы увидели, в чем проблема.Но, возможно, проблема в том, что вы выбрали выбранный элемент как объект, которого нет в вашей коллекции источников данных.Попробуйте установить selecteditem следующим образом

SelectedItem = Items.Where(x => x.Id == someId).First();

и посмотрите, не в этом ли проблема

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