:例外が
は<TextBlock Grid.Row="0"
Grid.Column="0"
Style="{StaticResource FieldLabel}"
Text="Inactive" />
<CheckBox Grid.Row="0"
Grid.Column="1"
IsChecked="{Binding IsSelectedEmployeeInActive,
Mode=TwoWay}" />
<TextBlock Grid.Row="1"
Grid.Column="0"
Style="{StaticResource FieldLabel}"
Text="Leave of Absence" />
<CheckBox Grid.Row="1"
Grid.Column="1"
IsChecked="{Binding IsSelectedEmployeeLoa,
Mode=TwoWay}" />
<TextBlock Grid.Row="2"
Grid.Column="0"
Style="{StaticResource FieldLabel}"
Text="Archived" />
<CheckBox Grid.Row="2"
Grid.Column="1"
IsChecked="{Binding IsSelectedEmployeeArchived,
Mode=TwoWay}" />
これらのチェックボックスのそれぞれは、結合であります次のような性質に:ユーザーがデータグリッド上の行をクリックしたとき
public bool IsSelectedEmployeeInActive
{
get { return _isSelectedEmployeeInActive; }
set
{
if (_isSelectedEmployeeInActive == value) return;
_isSelectedEmployeeInActive = value;
if (value)
{
var count = SelectedEmployee.EmployeeStatus.Count(x => x.validEmployeeStatusID.Equals(2));
if (count.Equals(0))
{
SelectedEmployee.EmployeeStatus.Add(new EmployeeStatu
{
employeeID = SelectedEmployee.employeeID,
validEmployeeStatusID = 2,
exitDate = DateTime.Now,
createdDate = DateTime.Now
});
}
}
else
{
var itemToRemove = SelectedEmployee.EmployeeStatus.Single(x => x.validEmployeeStatusID.Equals(2));
Context.Entry(itemToRemove).State = EntityState.Deleted;
SelectedEmployee.EmployeeStatus.Remove(itemToRemove);
}
RaisePropertyChanged(() => IsSelectedEmployeeInActive);
}
}
SelectedEmployee
プロパティが設定されます。ビューモデルのコンストラクタでは、アプリがSelectedEmployee
への変更のためのイベントハンドラを持っています
this.PropertyChanged += (o, e) =>
{
if (e.PropertyName == nameof(this.SelectedEmployee))
{
IsSelectedEmployeeLoa = (SelectedEmployee.EmployeeStatus
.Count(x => x.validEmployeeStatusID.Equals(2)) > 0);
IsSelectedEmployeeArchived = (SelectedEmployee.EmployeeStatus
.Count(x => x.validEmployeeStatusID.Equals(5)) > 0);
IsSelectedEmployeeInActive = (SelectedEmployee.EmployeeStatus
.Count(x => x.validEmployeeStatusID.Equals(4)) > 0);
}
};
ユーザーが[保存]ボタンをクリックすると、それはRelayCommandを経由して、次を呼び出します:
public void SaveEmployees()
{
Context.SaveChanges();
}
私が変更した場合
{ "ストア更新、挿入、またはDELE:チェックボックスをチェックし、チェックを外し、[保存]をクリックしますとの間に数回を制御し、アプリは上記
Context.SaveChanges()
ライン上でこの例外に吹きますte文が予想外の行数(0)に影響を与えました。エンティティはロードされた後に変更または削除された可能性があります。 。私は、エラーが表示されなくなり、チェックボックスのプロパティを設定しますSelectedEmployee
のイベントハンドラのコードをコメントアウトした場合}」の理解にとオプティミスティック同時実行の例外を処理
の情報についてhttp://go.microsoft.com/fwlink/?LinkId=472540を参照してください。しかし、私はできませんよ。データベースからの初期値にCheckBoxのプロパティを設定する
どのように私はこの問題を解決する必要があるおかげで
なぜ「デフォルト」ボタンを使ってデータベースからデータを取得しないのですか? –