2015-10-08 143 views
3

我能夠將靜態類屬性綁定到MenuItem頭,但我無法確定如何包含StringFormat,以便除了屬性外還可以顯示硬編碼文本。綁定到靜態類屬性和StringFormat

這可能嗎?

目前:(顯示 「SQLSERVER1」)

Header="{x:Static settings:Settings.CurrentServer}" 

期望:(顯示 「連接:SQLSERVER1」)

Header="{Binding Source={x:Static Settings:Settings.CurrentServer},StringFormat='Connection: {0}'}" 

當我嘗試在XAML '所需的' 線的StringFormat是完全忽略。我究竟做錯了什麼?

+0

不應有任何引號,請嘗試刪除StringFormat值附近的引號。 – Hopeless

+0

@Hopeless沒有變化。 –

+0

考慮轉義諸如「\ {0 \}」或「{} {0}」的'{0}' – Hopeless

回答

3

MenuItem規定,你應該使用HeaderStringFormat屬性:

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

其實,這財產的HeaderedItemsControl部分,它MenuItem發生延長。

StringFormat屬性被忽略。

1

我遭遇了類似的問題,並圍繞它得到了利用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> 
-1

的StringFormat被忽略的內容和標題,因爲他們的TargetType不是System.String。那些屬性具有對應的* StringFormat屬性來解決這個限制。