Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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# 绑定到静态类属性和StringFormat_C#_Wpf_Xaml_User Interface_Data Binding - Fatal编程技术网

C# 绑定到静态类属性和StringFormat

C# 绑定到静态类属性和StringFormat,c#,wpf,xaml,user-interface,data-binding,C#,Wpf,Xaml,User Interface,Data Binding,我可以将静态类属性绑定到MenuItem头,但无法确定如何包含StringFormat,以便在属性之外显示硬编码文本 这可能吗 当前:(显示“SQLSERVER1”) 所需:(显示“连接:SQLSERVER1”) 当我在XAML中尝试“所需”行时,StringFormat被完全忽略。我做错了什么?MenuItem提供了一个应使用的HeaderStringFormat属性: <MenuItem Header="{Binding Source={x:Static Settings:Settin

我可以将静态类属性绑定到MenuItem头,但无法确定如何包含StringFormat,以便在属性之外显示硬编码文本

这可能吗

当前:(显示“SQLSERVER1”)

所需:(显示“连接:SQLSERVER1”)


当我在XAML中尝试“所需”行时,StringFormat被完全忽略。我做错了什么?

MenuItem
提供了一个应使用的
HeaderStringFormat
属性:

<MenuItem Header="{Binding Source={x:Static Settings:Settings.CurrentServer}}"
          HeaderStringFormat="Connection: {0}" />

实际上,该属性是
HeaderedItemControl
的一部分,而
MenuItem
恰好扩展了该属性


StringFormat
属性被忽略。

我遇到了类似的问题,并通过使用
ContentControl
解决了它,它是独立的
ContentStringFormat
属性:

<TextBlock Cursor="Help" Text="Hello World" >
    <TextBlock.ToolTip>
        <ContentControl Content="{Binding Path=SomeProperty, Source={x:Static local:SomeStaticClass}}" ContentStringFormat="Hello {0}" />
    </TextBlock.ToolTip>
</TextBlock>


由于内容和标题的TargetType不是System.String,因此将忽略StringFormat。这些属性具有相应的*StringFormat属性以绕过该限制。

从.NET 5开始,以下内容适用于我:

<Window Title="{Binding Source={x:Static vm:ApplicationSettings.ProductName}, StringFormat='{}{0} Document'}" />

不应该有任何引用,试着在StrugFramework周围删除<代码> <代码>引号。@无望没有改变。考虑逃逸<代码> { 0 } <代码>,如<代码> > 0 } /代码>或<代码> {}{ 0 } < /代码>无望,仍然没有变化。
<TextBlock Cursor="Help" Text="Hello World" >
    <TextBlock.ToolTip>
        <ContentControl Content="{Binding Path=SomeProperty, Source={x:Static local:SomeStaticClass}}" ContentStringFormat="Hello {0}" />
    </TextBlock.ToolTip>
</TextBlock>
<Window Title="{Binding Source={x:Static vm:ApplicationSettings.ProductName}, StringFormat='{}{0} Document'}" />
public static string ProductName {get { ... ; } }