Nói rằng tôi có một usercontrol rất đơn giản mà - cho tất cả các tính năng - là gì khác hơn là TextBox:Thiết Tuỳ chỉnh Properties trong UserControl qua DataBinding
public partial class FooBox : UserControl
{
public static readonly DependencyProperty FooTextProperty =
DependencyProperty.Register("FooText", typeof(string), typeof(FooBox));
public FooBox()
{
InitializeComponent();
}
public string FooText
{
get { return textBlock.Text; }
set { textBlock.Text = value; }
}
}
<UserControl x:Class="Namespace.FooBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300">
<Grid>
<TextBlock x:Name="textBlock" />
</Grid>
</UserControl>
Về hình thức nó khai báo là:
<local:FooBox FooText="{Binding Name}" />
DataContext của biểu mẫu được đặt thành đối tượng có thuộc tính Tên. Nhưng điều này không làm việc cho tôi. Tôi đang thiếu gì?
Cũng lưu ý rằng phương thức Đăng ký cho thuộc tính phụ thuộc có quá tải có thể chấp nhận trình xử lý sự kiện được kích hoạt bất cứ khi nào thuộc tính đang thay đổi hoặc đã thay đổi. Đó có thể là một nơi để đặt logic bạn có ở đó. –