调用EventToCommand后,Datagrid selecteditem将设置为null

时间:2011-01-10 13:45:57

标签: mvvm silverlight-4.0

我在MVVMLight中创建了一个Silverlight 4应用程序 在视图中,我有一个绑定到我的ViewModel的DataGrid,它在我的ViwModel中再次将SeletedItem绑定到SelectedItem:

<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}" >

这一切都正常,就像我点击网格中的项目时,我的ViewModel中的SelectedItem设置正确。

现在我在Datagrid中的行中添加了一个按钮,并将EventToCommand添加到绑定到同一ViewModel的按钮:

<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 :(得分:-1)

你应该改进你的代码,让我们看看问题是什么。但也许问题是您将所选项目设置为不在datagrid的itemsource集合中的对象。尝试像这样设置选择项

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

看看这是不是问题..当然改变条件......:)