我的 DataTemplate 声明如下:
注意:数据模板没有键,它是由类型绑定的。
<DataTemplate DataType="{x:Type myType}">...
</DataTemplate>
并且,它绑定到 TabControl
<TabControl ItemsSource="{Binding Path=myCollection}"
SelectedItem="{Binding Path=SelectedItem}">
<!-- TabStripPlacement="Left" -->
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Padding="2.5"
Text="{Binding Path=Caption}">
<!--<TextBlock.LayoutTransform>
<RotateTransform Angle="270" />
</TextBlock.LayoutTransform>-->
</TextBlock>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
现在,在运行时,我想加载这个 DataTemplate 并将上下文菜单动态添加到代码隐藏中的网格(它是数据模板的一部分)。我试过这个(LoadContent),但它似乎没有更新 DataTemplate。
// get the datatemplate of the view (defined in the XAML)
var key = new DataTemplateKey(typeof (myType));
var dataTemplate = (DataTemplate) FindResource(key);
// load the root control (in this case the grid)
var grid = dataTemplate.LoadContent() as DataGrid;
这会加载网格,我可以成功访问实例和属性,但是当我操作属性时,它永远不会反映在 GUI 上。
请问有什么替代方法吗?