0
TabControl
にはSelectionChanged
イベントがあります。選択したTabPage
が変更された場合、TabPage
のUIElements
のいずれかの値が変更された場合、選択したTabPage
の通知を受け取りたいと思います。TabItem UIElement OnPropertyChanged
private FrameworkElement CurrentFrameworkElement { get; set; }
public TabEvents(DispatcherEvents dispatcherEvents)
: base(dispatcherEvents)
{
EventManager.RegisterClassHandler(typeof(System.Windows.Controls.TabControl), System.Windows.Controls.TabControl.SelectionChangedEvent, new SelectionChangedEventHandler(TabControl_SelectionChanged), true);
}
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.Source is System.Windows.Controls.TabControl)
{
var ti = ((System.Windows.Controls.TabControl)e.Source).SelectedItem as TabItem;
CurrentFrameworkElement = e.Source as System.Windows.Controls.TabControl;
}
}
このコードでは、現在のTabItem
を得ることができます。現在のTabItem
のUIElement値の変化を検出するにはどうすればよいですか?たとえば、テキストをTextBox
に入力するか、CheckBox
を切り替えると、通知が送られます。
ObservableUIElementCollection hereの実装が見つかりましたが、このシナリオでどのように使用できるかわかりません。
があなたのテキストボックス、チェックボックスで変更を取得するには次に
をので、あなたが持っている上テキストプロパティまたはischeckedプロパティをウィンドウ内のプロパティにバインドする方法を説明するWPFの使い方に関するチュートリアルをオンラインで見つけることができます –
MVVMを使用していますか? –
@GlenThomasはい、私はView/ViewModelにアクセスします – Sybren