我在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属性,如何阻止它以便我可以使用它?
答案 0 :(得分:-1)
你应该改进你的代码,让我们看看问题是什么。但也许问题是您将所选项目设置为不在datagrid的itemsource集合中的对象。尝试像这样设置选择项
SelectedItem = Items.Where(x => x.Id == someId).First();
看看这是不是问题..当然改变条件......:)