- WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part18
92 :デフォルトの名無しさん[]:2014/10/19(日) 04:14:51.93 ID:SF+BcaTz - ConvertTaiju呼び出しはかなり重い処理なので、タブBが選択されている時だけPerson変更によって実行させたいです。そもそも非表示になっているタブの中のBindingを取得させたくないです。
<TabControl> <TabItem Header="タブA" />中身省略 <TabItem Header="タブB" DataContext="{Binding Person}"> <TextBlock Text="{Binding Taiju,Converter={StaticResource ConvertTaiju}}" /> </TabItem> </TabControl> 一応さっき思いついた下記の方法で達成出来ます。TriggerでDataContextを変えます。 選択されていなければ{Binding Taiju}は上位のDataContextから得ようとも見つからないためConvertTaijuは呼び出されません。 出力にSystem.Windows.Data Error: 40が出ます。もっとましな方法があれば教えて下さい。 <TabControl> <TabItem Header="タブA" />中身省略 <TabItem Header="タブB"> <TabItem.Style> <Style> <Style.Triggers> <Trigger Property="TabItem.IsSelected" Value="True"> <Setter Property="TabItem.DataContext" Value="{Binding Person}"></Setter> </Trigger> </Style.Triggers> </Style> </TabItem.Style> <TextBlock Text="{Binding Taiju,Converter={StaticResource ConvertTaiju}}" /> </TabItem> </TabControl>
|
|