2015-01-08 104 views
0

我有以下標記。無法綁定到一個屬性

<TextBox x:Name="Address" 
     Text="{x:Static local:MainWindow.Boundie.SomeProp}" 
</TextBox> 

在後面的代碼中我有一個像這樣的靜態屬性。

static Something Boundie { get; set; } 

public class Something { public String SomeProp { get; set; } } 

的問題是,它是耿耿於懷「預期類型」當我將鼠標懸停在Boundie和「靜態成員預計」當我將鼠標懸停在SomeProp。當我忽略後者時,它只會抱怨預期類型爲字符串,但它只能看到某些東西

如何綁定到靜態成員的非靜態字段?

爲什麼我想這樣做?因爲我想重用域對象模型,並且這些類沒有配備靜態成員。

+1

靜力學在所有綁定到它?你不應該綁定到你的視圖模型嗎? – nvoigt

+0

@nvoigt好問題。因爲那需要我開發整個視圖模型。而且由於數據庫模式已經被重建,這是很多工作。我想向客戶展示這個小小的行爲。視圖模型的工作可以在以後完成。 –

回答

2

SomeProp是實例屬性,所以你不能使用x:Static訪問。您可以使用靜態Source組合Path

<TextBox ... 
     Text="{Binding 
      Source={x:Static local:MainWindow.Boundie}, 
      Path=SomeProp}"/> 
爲什麼你綁定
+0

我冒昧地重新格式化。燦爛的清晰度:+1。 –

0
<object property="{x:Static prefix:typeName.staticMemberName}" .../> 

http://msdn.microsoft.com/en-us/library/ms742135.aspx

+0

它上面的行包含要領。 –

+0

這可能是如此,但對於那些仍然試圖在綁定沼澤中正確行事的人來說,這有點令人費解。不要說這是錯誤或誤導。只是在閱讀完之後,我做的比頭腦打字更划算。 :) –