我有一个自定义控件,其中我在 Generic.xaml 中定义了资源。我需要在运行时创建数据模板,例如
xaml = "<DataTemplate><TextBlock Text=\"{Binding " + Binding + "}\"/></DataTemplate>";
这很好用,但是如果模板访问其他资源,我会被卡住,例如
xaml = "<DataTemplate><TextBlock Text=\"{Binding " + Binding +
"}\" Margin=\"{Binding Bar, Converter={StaticResource MyConverter}, RelativeSource={RelativeSource AncestorType={x:Type local:Foo}}}\"/></DataTemplate>";
转换器和RelativeSource 都会导致问题。
“无法从文本‘local:Foo’创建‘类型’。” 或“找不到名为 'MyConverter' 的资源。” 如果我尝试在代码中创建的数据模板是在 Generic.xaml 中定义的,并使用 TemplateSelector 进行选择,则它可以工作。