Silverlight プロジェクトがあり、MVVM パターンを使用しています。
GridView コントロールがあり、その ItemSource を ViewModel から割り当てています。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>
私のビュー モデルには、Grid の SelectedItem にバインドされるプロパティがあります。
private Agent _selectedAgent;
public Agent SelectedAgent
{
get{ return this._selectedAgent; }
set
{
this._selectedAgent = value;
RaisepropertyChanged("SelectedAgent");
}
}
ItemSource が更新されると、SelectedAgent プロパティが再度実行されます。