2012-08-30 196 views
1

我有建立了具有被在XAML定義像這樣性能的用戶控件:綁定到枚舉在XAML

<Repeater:JointScoringGrid x:Name="PIPLeftErosionsRepeater" 
      TabName="PIP" 
      Header="Erosion" 
      ControlNamePrefix="Left" 
      ScoringType="Erosions"> 

然後,在我的代碼後面我有ScoringType爲中心的邏輯。目前,我正在通過評估哪個字符串(即ScoringType.ToUpper().Equals("EROSIONS"))能夠檢查哪個網格是ScoringType,但它並不像我希望的那樣乾淨。我寧願使用枚舉,但在xaml中使用名稱而不是數字值(例如,我想使用類似ScoringType="Enum.Erosions"而不是ScoringType="0"來使xaml更具可讀性)。這可以完成嗎?

+0

@ H.B。你是對的。下次我應該仔細閱讀。 – mydogisbox

+0

順便說一下,'tuUpper'字符串比較是* evil *,使用['String.Equals'](http://msdn.microsoft.com/en-us/library/c64xh8f9.aspx),而不區分大小寫的比較類型。 –

回答

1

只需將屬性的類型更改爲枚舉類型,它應自動將該字符串解析爲枚舉值。 (例如HorizontalAlignment="Stretch"工程,只是一個枚舉屬性)

+0

這工作。謝謝! – Saggio

+0

@ user564636:不客氣,很高興幫助。即使WPF甚至可以簡單有時:) –

1

定義評分類型作爲您的枚舉類型的依賴項屬性。然後,您可以將其綁定到xaml中,如

ScoringType = {x:Static YourEnumType.Erosions}