ここでは依存オブジェクトを使用していますが、あまり前から行われていませんが、非常に便利です。WPF C#依存関係オブジェクトデータの変更
基本的に私はこれらのオブジェクトをListViewで編集可能に使用しました。しかし、私はこれらの変更をSQLに書き戻す必要があります。私の質問は、誰かがデータを見るたびにSQLに書き戻したくないので、データが変更されたかどうかを記録する方法があるかどうかです。それをやっての
public static bool DataModified = false;
public static readonly DependencyProperty DepartmentProperty = DependencyProperty.Register("Department", typeof(string), typeof(KPI), new UIPropertyMetadata(null));
public string Department
{
get { return (string)GetValue(DepartmentProperty); }
set { SetValue(DepartmentProperty, value); DataModified = true; }
}
だから、何かがDataModifiedプロパティがtrueに設定されます編集するたびに、これは良い方法:
public class KPI : DependencyObject
{
public static readonly DependencyProperty DepartmentProperty = DependencyProperty.Register("Department", typeof(string), typeof(KPI), new UIPropertyMetadata(null));
public string Department
{
get { return (string)GetValue(DepartmentProperty); }
set { SetValue(DepartmentProperty, value); }
}
public static readonly DependencyProperty KPINumberProperty = DependencyProperty.Register("KPINumberProperty", typeof(int), typeof(KPI), new UIPropertyMetadata(null));
public int KPINumber
{
get { return (int)GetValue(KPINumberProperty); }
set { SetValue(KPINumberProperty, value); }
}
}
私の考えのようなものを持っていることでした。現在、私はこれを持っています?それとも誰かがそれをやるより良い方法を持っていますか?
ありがとうございます。
SumGuy。
バインディングエンジンはSetValueを直接呼び出す代わりにDepartment CLRプロパティをどのように呼び出しますか? – Robin
@ロビン:言うことは難しい。場合によってはCLRラッパーを呼び出すことがあり、場合によっては 'GetValue'メソッドと' SetValue'メソッドを直接呼び出すことがあります。さらに、CLRプロパティは、XAML内の名前を呼び出すためにインテリセンスを行います。 – Nawaz
私は、CLRプロパティを作成する方が良い習慣であることに同意しますが、バインディングエンジンがGetValueまたはSetValueの代わりにそれらを使用する場所については、見たことも読み取ったこともありません。私はそれについてあなたの言葉を取るでしょう。 – Robin