以编程方式扩展DataTemplate

时间:2013-08-09 09:14:42

标签: c# wpf xaml

我的DataTemplate声明如下:

注意: 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上。

请问其他方法吗?

0 个答案:

没有答案