C# 在没有样式的资源中使用绑定
我有一个C# 在没有样式的资源中使用绑定,c#,wpf,xaml,resourcedictionary,C#,Wpf,Xaml,Resourcedictionary,我有一个MultiBinding定义如下: <MultiBinding StringFormat="{0}_{1}"> <Binding Path="..." /> <Binding Path="..." /> </MultiBinding> 这给了我一个编译错误:“无效的资源类型:预期的类型是'string',实际的类型是'MultiBinding'。” 当我尝试使用绑定访问它时,类似于: <TextBlock Text=
MultiBinding
定义如下:
<MultiBinding StringFormat="{0}_{1}">
<Binding Path="..." />
<Binding Path="..." />
</MultiBinding>
这给了我一个编译错误:“无效的资源类型:预期的类型是'string',实际的类型是'MultiBinding'。”
当我尝试使用绑定访问它时,类似于:
<TextBlock Text="{StaticResource MyDefaultBinding}"
Style="{StaticResource SomeOtherStyle}" />
<TextBlock Text="{Binding Source={StaticResource MyDefaultBinding}}"
Style="{StaticResource SomeOtherStyle}" />
它可以编译,但在运行时,TextBlock
中的文本被设置为“System.Windows.Data.MultiBinding”,而不是预期的值
我看到过一些建议,建议将多重绑定
包装成样式
,但是我已经在需要使用绑定的控件上定义了其他共享样式
我是否可以评估在参考资料中定义的绑定,而不将其包装为样式?您不能真正按原样重用绑定资源,但可以创建一个标记扩展,按照此处的建议应用该资源:
我认为这是不可能的。但是,我认为您可以在新样式中使用BaseOn
扩展现有样式。这样,一个样式有绑定,另一个样式没有绑定,但仍然只编码了一次。
<TextBlock Text="{Binding Source={StaticResource MyDefaultBinding}}"
Style="{StaticResource SomeOtherStyle}" />