ViewModel のコレクションにバインドされた XamDataPresenter (XamDataGrid) があります。
XAML:
<igDP:XamDataPresenter x:Name="dataPresenter" DataSource="{Binding Path=AppServers, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True">
</igDP:XamDataPresenter>
コード:
public ShellViewModel()
{
AppServers = new BindingListCollectionView(new BindingList<AppServer>(_context.GetAllAppServers()));
AppServers.CurrentChanged += new EventHandler(AppServers_CurrentChanged);
}
void AppServers_CurrentChanged(object sender, EventArgs e)
{
NotifyOfPropertyChange(() => CanSaveAppServers);
NotifyOfPropertyChange(() => CanDeleteAppServers);
}
CanSaveAppServers プロパティ:
public bool CanSaveAppServers
{
get
{
return (_appServers.SourceCollection as BindingList<AppServer>).Any(x => x.ChangeTracker.State != ObjectState.Unchanged);
}
}
コレクションの項目が変更された場合、CanSaveAppServers プロパティは false である必要があります。しかし、CanSaveAppServers はどのように呼び出されるのでしょうか? 別のイベント?または間違ったコレクションタイプですか?これは何らかの方法で自動的に行われるべきではありませんか?
前もって感謝します。