私は次のものを持っています:
public enum ValidationSeverity
{
Error = 1,
Warning = 2
}
Public class Errors
{
public ValidationSeverity Severity { set; get; }
public string Desc { set; get; }
}
ViewModel で定義された ObservableCollection で、それを SDK の DataGrid にバインドしました。これで、2 つのトグル ボタンができました。
- エラーを表示
- 警告を表示 -
[エラーを表示] をクリックすると、データ グリッドには、重大度が「エラー」である行だけが表示されます。「エラーを表示」をクリックすると、次のように ICollectionView を使用しようとしています。
private void OnShowErrors()
{
if (IsErrorButtonChecked)
Show(ValidationSeverity.Error);
else
Hide(ValidationSeverity.Error);
}
private void Hide(ValidationSeverity sev)
{
var lcv = _collectionViewSourceHelper.GetCollectionView(ErrorsList);
if (lcv == null || !lcv.CanFilter) return;
lcv.Filter = item =>
{
var error = item as Error;
if (error == null) return false;
return error.Severity != sev;
};
}
private void Show(ValidationSeverity sev)
{
var lcv = _collectionViewSourceHelper.GetCollectionView(ErrorsList);
if (lcv == null || !lcv.CanFilter) return;
lcv.Filter = item =>
{
var error = item as Error;
if (error == null) return false;
return error.Severity == sev;
};
}
_collectionViewSourceHelper - これを追加しました。Silverlight では GetCollectionView を直接使用できないため、これをどのように行うことができるかが問題です。2 つの述語を書きましたが、collectionView を編集すると、見る?
ありがとう