如何将“xaml string”模板转换为可编译的xaml / control

时间:2014-02-19 06:27:40

标签: c# silverlight xaml

这是我现有的“Xaml字符串”模板,存储在资源文件中。

<telerik:GridViewDataColumn 
DataMemberBinding="{Binding <<PropertyName>>}"         
IsReadOnlyBinding="{Binding Is<<PropertyName>>ReadOnly}">   
    <telerik:GridViewDataColumn.CellEditTemplate>
        <DataTemplate>
            <StackPanel  >
                <!--some more markup with similar bindings here-->
            </StackPanel  >
        </DataTemplate>
    </telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>

在后面的代码中,我使用XamlReader为列创建标记,然后将其添加到Grid。

var xamlTemplate = Properties.Resources.GridColumnTemplate.Replace( "<<PropertyName>>", "MyProperty");
var col = ( GridViewDataColumn )XamlReader.Load( xamlTemplate );
detailsGrid.Columns.Add( col );

现在,我需要用可编译的Xaml / Control替换它。 有办法吗?

我想过广泛使用转换器并绑定到MyProperty的Context,但这听起来不是一个好的解决方案。

1 个答案:

答案 0 :(得分:0)

一种选择是:

  • 使用自己的依赖属性
  • 派生自己的列控件(来自telerik)
  • 循环浏览您的属性集合:
    • 创建列控件的实例
    • 设置绑定in code