Silverlight 4.0 正在对itemsource更改执行DataGrid选定项属性

Silverlight 4.0 正在对itemsource更改执行DataGrid选定项属性,silverlight-4.0,mvvm-light,Silverlight 4.0,Mvvm Light,我有一个Silverlight项目,我正在使用MVVM模式 我有一个GridView控件,我从ViewModel分配它的ItemSource。它的SelectedItem绑定到ViewModel属性 单击按钮时,我正在更新网格的ItemSource。但我现在的问题是,当我更新ItemSource时,SelectedItem绑定属性也会被执行 是否有一种方法可以阻止在更新ItemSource时执行SelectedItem属性 这是我的数据网格 <sdk:DataGrid x:Name

我有一个Silverlight项目,我正在使用MVVM模式

我有一个GridView控件,我从ViewModel分配它的ItemSource。它的SelectedItem绑定到ViewModel属性

单击按钮时,我正在更新网格的ItemSource。但我现在的问题是,当我更新ItemSource时,SelectedItem绑定属性也会被执行

是否有一种方法可以阻止在更新ItemSource时执行SelectedItem属性

这是我的数据网格

    <sdk:DataGrid x:Name="DataGrid" Width="400"
                                               Height="511" Visibility="Visible"
                                                SelectionMode="Single"
ItemsSource="{Binding DetailInfo, Mode=TwoWay}"
    SelectedItem = {Binding SelectedAgent}                                           ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Auto" AutoGenerateColumns="False"
                                               CanUserReorderColumns="False" CanUserResizeColumns="True" IsReadOnly="True"
                                               CanUserSortColumns="True">
                            <sdk:DataGrid.Columns>
                                <sdk:DataGridTextColumn x:Name="detailRank" Binding="{Binding Rank}" Header="#" Width="40"/>
                                <sdk:DataGridTextColumn x:Name="detailName" Binding="{Binding Name}" Header="Reps" Width="160"/>
                                <sdk:DataGridTextColumn x:Name="detailRevenue" Binding="{Binding Revenue, StringFormat=\{0:C0\}}" Header="Revenue" Width="70"/>
                                <sdk:DataGridTextColumn x:Name="detailProfit" Binding="{Binding Profit, StringFormat=\{0:C0\}}" Header="Profit" Width="58"/>
                                <sdk:DataGridTextColumn x:Name="detailMargin" Binding="{Binding Margin, StringFormat=\{0:P0\}}" Header="Margin" Width="55"/>
                            </sdk:DataGrid.Columns>
                        </sdk:DataGrid>

现在,当ItemSource更新时,SelectedAgent属性将再次执行。

您可以发布与这些绑定相关的XAML代码和ViewModel代码吗?我认为您应该在更新Grid时选择SelectedAgent=null
private Agent _selectedAgent;

public Agent SelectedAgent
{
get{ return this._selectedAgent; }

set
{
this._selectedAgent = value;
RaisepropertyChanged("SelectedAgent");
}
}