2010-01-29 77 views
0

我想一些屬性從我綁定代碼隱藏.xaml.cs一些XAML代碼,就像這樣:WPF綁定問題 - 不起作用?

<TextBlock [someProperties] ... Text="{Binding ElementName=awesome, Path=value}" /> 
<TextBlock [someProperties] ... Text="{Binding Path=legendary}" /> 

在相關.xaml.cs文件我也有屬性:

public String legendary = "High five"; 
public CoolObject awesome = new CoolObject(); //has a public property "String value = '5';" 

但我的TextBlocks只是不想顯示該死的「高五」和「5」。我錯過了什麼?

回答

0

<TextBlock [someProperties] ... Text="{Binding ElementName=awesome, Path=value}" />不起作用。當你想綁定到可視樹屬性中的某些元素時,使用ElementName。 你需要

<TextBlock [someProperties] ... Text="{Binding Path=awesome.value}" /> 

而且你需要設置的TextBlock的DataContext屬性來bject包含您需要綁定屬性。

+0

感謝,設置在DataContext加上設置屬性屬性,而不是字段,做到了。好極了! – Thomas 2010-01-29 14:35:14

+0

不客氣 – Yurec 2010-01-29 15:01:34

0

問題是「傳奇」和「真棒」被聲明爲字段而不是屬性。 WPF綁定不適用於字段。

0

你需要用屬性包裝你的領域。綁定不支持字段。

所以:

public String _legendary = "High five"; 
public String legendary { 
    get { return _legendary; } 
    set { _legendary = value; } 
} 

另外,如果你可能要考慮實施INotifyPropertyChanged的,以確保無論你結合你的財產得到更新當您更改屬性的值。

+0

還不行..都宣稱傳說中的那樣跟隨,只是爲了嘗試: 公共字符串傳說中的{{返回「五高」;}集合{}} – Thomas 2010-01-29 14:03:34