Tôi đang cố gắng lấy nội dung của nhãn để liên kết với thuộc tính chuỗi của cá thể lớp mà không thành công nhiều.WPF: Gắn nhãn cho thuộc tính lớp
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; }
}
}
tức là khi tôi nhấp vào nút, tôi thiết lập các thuộc tính của MyFoo để "Hello" và "Dave", và muốn điều đó phản ánh trong nhãn trên giao diện người dùng. Tôi đã đặt Nội dung làm ràng buộc nhưng có điều gì đó không đúng. Tôi làm gì sai ở đây?
Thanks, điều này chỉ cho tôi đi đúng hướng. Thực hiện Foo triển khai INotifyPropertyChanged, sau đó thiết lập DataContext của Window1 thành của BindingList, chứa MyFoo. Nội dung nhãn hiện là: {Đường dẫn ràng buộc = W1, UpdateSourceTrigger = PropertyChanged} Và nó hoạt động tốt! –
Gareth
@Vlad Sự khác biệt giữa việc sử dụng 'DependencyProperty' và triển khai' INotifyPropertyChanged' hoặc điều này sẽ là một câu hỏi của chính nó? – ywm
@ymw: đây là một câu hỏi khác, trên thực tế khá lớn. Tóm lại: cả hai sẽ làm việc cho chỉ ràng buộc, nhưng 'INotifyPropertyChanged' là nhẹ hơn,' DependencyProperty' tuy nhiên không mất bộ nhớ nếu không được sử dụng và có thể được sử dụng cho hoạt ảnh, kiểu dáng, mẫu, được kế thừa (từ thùng chứa mẹ đến và nhiều hơn nữa. Xem ví dụ [câu trả lời này] (http://stackoverflow.com/a/3674530/276994). – Vlad