我有一个TabControl绑定到一个集合,一个DataTemplate绑定到TabItems。它工作得很好,但现在我想将Button的CommandTarget绑定到当前选定的TabItem上的textEditor。我该如何实现呢?
<TabControl Name="tabs" Grid.Row="1" Margin="0,5,0,0"
ItemsSource="{Binding Tabs, Mode=OneTime}">
<TabControl.ContentTemplate>
<DataTemplate DataType="vm:TabViewModel">
<avalon:TextEditor Name="textEditor"
Document="{Binding Document, Mode=OneWay}" Margin="3"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
答案 0 :(得分:1)
我没有找到解决此问题的优雅方法,但解决方法很少。首先从DataTemplate中查找控件,您必须使用VisualTreeHelper来查找TabControl的子项。然后,您可以将此机制打包到自定义IValueConverter,行为或视图模型,并作为CommandTarget传递