0
私はEF4で作成されたデータレイヤーを持つWPFアプリケーションを持っています。 画面の1つでは、複数のエレメンツ(エンティティ名:プロジェクト)を含むコンテナ(エンティティ名:マスタ)を表示します。[プロパティ]での検証EF4のメソッドの変更
マスタは(ユーザにより設定)が開いたり閉じたりすることができる状態を有するが、そのすべてのプロジェクトが閉じていない場合に閉じることができません。
私はこれを行うには、エンティティのframewokで部分クラスを使用:
public partial class Master
{
partial void OnStatusIdChanging(int value)
{
if (value == 2) // Changing status to closed.
{
// Must check if all projects are closed.
if (this.Projects.Any(e => e.StatusId == 1))
{
throw new InvalidOperationException("All the underlying projects must be closed to set the master'status to closed.");
}
}
}
}
これは、XAMLでこのようにバインドされます。
<ComboBox Grid.Column="1" Margin="2" ItemsSource="{Binding MasterStatusTypes}" SelectedValuePath="Id" SelectedValue="{Binding CurrentMaster.StatusId, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
しかし、私は変化を防止するためにホ分かりませんコンボボックスで私がしたいのは、このエラーが発生したときにメッセージボックスを表示し、それが有効になるまで古い値を戻しますが、このメッセージを取得する方法や値を置き換えることができません。
ご協力いただきありがとうございます。