Im複合アプライドガイドパターンを使用してWPFアプリケーションを構築する。私のシェルでは、私は領域にビューを動的にロードするための領域を含むタブコントロールがあります。ビューはTabControlの新しいタブに読み込まれます。Tabcontrolデータ型のButtonへのCloseコマンドのバインドに関する問題
<TabControl
AutomationProperties.AutomationId="MainTabControl"
cal:RegionManager.RegionName="{x:Static inf:RegionNames.MainRegion}"
Width="Auto" Height="Auto" Margin="10,10,0,0"
HorizontalAlignment="Stretch"
IsSynchronizedWithCurrentItem="True"
ItemTemplate="{StaticResource TabItemTemplate}"
SelectionChanged="TabControl_SelectionChanged">
私は、CloseButtonを実装するためのDataTemplate "TabItemTemplate"を持っています。私は、DataTemplateのbutton'sコマンドをpresentationModelのCloseコマンドにバインドする方法を理解できません。コマンドをCompositCommandにバインドすると、コマンドはexecutetになります。しかし、私は、閉じるボタンが押されたタブを見つけ出し、そのPresentationModelでcloseCommandを実行するだけです。以下はdataTemplateです。
<DataTemplate x:Key="ClosableTabItemTemplate">
<DockPanel Width="120">
<Button
Command="inf:CloseCommands.CloseCommand"
Content="X"
Cursor="Hand"
DockPanel.Dock="Right"
Focusable="False"
FontFamily="Courier"
FontSize="9"
FontWeight="Bold"
Margin="0,1,0,0"
Padding="0"
VerticalContentAlignment="Bottom"
Width="16" Height="16"
/>
<ContentPresenter
Content="{Binding}"
VerticalAlignment="Center"
/>
</DockPanel>
</DataTemplate>
誰もこのバインディングの問題を解決する方法を知っていますか?
私はすでにDelegateCommandにバインドしようとしましたが、うまくいかないようです。 DataTemplateがTabItemのDataContextを知らないようです。 – KaJo
ビューをリージョンにどのように追加しますか? (あなたのコードはどのように見えますか?) –