従属プロパティのプロパティ変更イベントを発生させるには?
2023-10-30 01:02:14
質問
2つのプロパティを持つコントロールがあります。1つは
DependencyProperty
で、もう1つは最初のプロパティのエイリアスです。 どのようにしたら
PropertyChanged
イベントを発生させることができます。
ノート
: 私は
DependencyObjects
ではなく
INotifyPropertyChanged
(試したがうまくいかなかった。なぜなら私のコントロールは
ListVie
のサブクラス化されているため、動作しませんでした)。
こんな感じで......。
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{
base.OnPropertyChanged(e);
if (e.Property == MyFirstProperty)
{
RaiseAnEvent( MySecondProperty ); /// what is the code that would go here?
}
}
INotifyを使うなら、こんな感じかな。
public string SecondProperty
{
get
{
return this.m_IconPath;
}
}
public string IconPath
{
get
{
return this.m_IconPath;
}
set
{
if (this.m_IconPath != value)
{
this.m_IconPath = value;
this.SendPropertyChanged("IconPath");
this.SendPropertyChanged("SecondProperty");
}
}
}
どこで
PropertyChanged
イベントを発生させることができますか? 同じことをするのに必要なのは
DependencyProperties
.
どのように解決するのですか?
-
実装
INotifyPropertyChanged
を実装してください。 -
依存性プロパティを登録する際に、プロパティのメタデータにコールバックを指定する。
-
コールバックでは
PropertyChanged
イベントを発生させます。
コールバックを追加する。
public static DependencyProperty FirstProperty = DependencyProperty.Register(
"First",
typeof(string),
typeof(MyType),
new FrameworkPropertyMetadata(
false,
new PropertyChangedCallback(OnFirstPropertyChanged)));
上げる
PropertyChanged
をコールバックで発生させる。
private static void OnFirstPropertyChanged(
DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
PropertyChangedEventHandler h = PropertyChanged;
if (h != null)
{
h(sender, new PropertyChangedEventArgs("Second"));
}
}
関連
-
例外の解決方法 GDI+でジェネリックエラーが発生しました。
-
[解決済み] ラジオボタンをenumにバインドするには?
-
[解決済み] WPFでデータトリガーに複数の条件を指定するには?
-
[解決済み] Prism for WPFとは?
-
[解決済み] グリッドカラムの幅・高さを設定する際の「Auto」と「*」の違いは何ですか?
-
[解決済み] WPF ListViewの選択範囲オフ
-
[解決済み] グリッドの行と列の位置をプログラムで設定する方法
-
[解決済み] WPFのTextBlock要素とLabelコントロールの違いは何ですか?重複
-
[解決済み] WPFコマンドライン
-
[解決済み] WPFボタンのデフォルトマウスオーバー効果を削除するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] wpf: ボタンがコマンドによって無効にされたとき、ツールチップを表示する方法は?
-
[解決済み] スタックパネルでアイテムを整列させる?
-
[解決済み] レンダリング時間やパフォーマンスの面で最も効率的なパネルはどのような順番になりますか?
-
[解決済み] WPFのスライダーを整数の位置にのみスナップさせる方法とは?
-
[解決済み] WPFウィンドウのハンドルを検索する
-
[解決済み] WPFとSilverlightの比較[重複]。
-
[解決済み] テンプレートバインディングとバインディングとは?
-
[解決済み] TwoWayまたはOneWayToSourceバインディングは、読み取り専用プロパティでは機能しません。
-
[解決済み] 右クリックでContextMenuを表示する前にTreeView Nodeを選択する
-
[解決済み] HorizontalAlignment=Stretch、MaxWidth、Left alignedを同時に使用できますか?