Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在没有样式的资源中使用绑定_C#_Wpf_Xaml_Resourcedictionary - Fatal编程技术网

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}" />