1

最初は非常に些細な機能だと思っていましたが、今は実装できません。

私の要件は単純です。のコンテンツをプログラムで設定していTabItemます。コンテンツはユーザーコントロールになります。TabItemコンテンツに基づいてヘッダーのテキストを設定したい。

コンテンツには変更されたイベントがないため、どのイベントでコードを記述すればよいか混乱しています。

また、ネット上でスタイルや何かを見つけることができません。

助言がありますか?助けてください。前もって感謝します。

PS: 私の側からさらに情報が必要な場合はお知らせください。

4

4 に答える 4

1

MVVMを使用している場合(または割り当ててタブを作成している場合TabControl.ItemsSource)は、簡単に実行できます。ItemTemplate:を定義するだけです。

<TabControl.ItemTemplate>
   <DataTemplate>
      <TextBlock Text={Bindin Name}/>
   </DataTemplate>
</TabControl.ItemTemplate>
于 2012-11-26T12:16:48.983 に答える
1

更新:
メソッド も使用できますDependencyPropertyDescriptor.AddValueChanged。参照: system.componentmodel.dependencypropertydescriptor.addvaluechanged.aspx

参照: wpf-why-is-there-no-isreadonlychanged-event-on-textbox-controls

このリンクも参照してください: listen-to-dependencyproperty-changes

私の古い答え:
カスタム クラスを作成し、OnPropertyChanged イベントを処理します。次のように:

public class MyTabItem : TabItem
{
    public MyTabItem() { }
    protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
    {
        base.OnPropertyChanged(e);
        if (e.Property.ToString() == "Content")
        {
            // here you are sure that ContentPropertyhas changed
        }
    }
}
于 2012-11-26T13:24:24.850 に答える