我試圖得到一個標籤的內容綁定到一個類實例的字符串屬性沒有多少成功。WPF:綁定標籤的類屬性
XAML:
<Window x:Class="WPFBindingTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Label Height="28" Margin="12,55,106,0" Name="label1" Background="Bisque"
Content="{Binding Source=MyFoo, Path=W1}" VerticalAlignment="Top" />
<Label Height="28" Margin="12,12,106,0" Name="label2" Background="Bisque"
Content="{Binding Source=MyFoo, Path=W2}" VerticalAlignment="Top" />
<Button Height="23" HorizontalAlignment="Right" Margin="0,0,32,48"
Name="button1" VerticalAlignment="Bottom" Width="89"
Click="button1_Click">
Set Properties
</Button>
</Grid>
</Window>
C#:
namespace WPFBindingTest
{
public partial class Window1 : Window
{
public Foo MyFoo;
public Window1()
{
InitializeComponent();
MyFoo = new Foo();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
MyFoo.W1 = "Hello";
MyFoo.W2 = "Dave";
}
}
public class Foo
{
public string W1 { get; set; }
public string W2 { get; set; }
}
}
即當我按一下按鈕,我設置MyFoo爲 「Hello」 和 「戴維」 的性質,並希望這體現在UI上的標籤。我已經將內容設置爲綁定,但某些內容不正確。我在這裏做錯了什麼?
謝謝,這個我指出了正確的方向。 Made Foo實現了INotifyPropertyChanged,然後將Window1的DataContext設置爲包含MyFoo的BindingList的DataContext。標籤的內容現在是: {綁定路徑= W1,UpdateSourceTrigger =的PropertyChanged} 和它的作品一種享受! –
Gareth
2010-02-23 11:31:57
@Vlad使用'DependencyProperty'和實現'INotifyPropertyChanged'或者這應該是它本身的問題? – ywm 2013-08-01 14:18:04
@ymw:這是一個不同的問題,其實相當大。簡而言之:將二者只是結合工作,但'INotifyPropertyChanged'更輕盈,'DependencyProperty'但是如果不使用,可用於動畫,樣式,模板不走記憶,繼承(從父容器所含元素)等等。看看例如[這個答案](http://stackoverflow.com/a/3674530/276994)。 – Vlad 2013-08-01 16:59:29