Tôi đang cố tạo UserControl có thể tái sử dụng trong WPF có Nhãn và Hộp văn bản. Tôi muốn thêm các thuộc tính vào UserControl của mình để bong bóng lên các trường văn bản của cả hai điều khiển con cho đến cha mẹ để dễ ràng buộc. Tôi đọc rằng tôi cần một chút tập trung vào việc lấy nét bằng cách thêm chủ sở hữu vào DependencyProperties. Đây là mã của tôi bây giờ. Nó có vẻ gần nhưng không hoàn toàn đúng. Bất kỳ ý tưởng?Điều khiển tổng hợp WPF
Đây là XAML:
<UserControl x:Class="MAAD.AircraftExit.Visual.LabelTextBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="20" Width="300">
<DockPanel>
<TextBlock Text="{Binding Path=Label, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" DockPanel.Dock="Left" TextAlignment="Right" Width="122" />
<TextBlock Text=": " DockPanel.Dock="Left"/>
<TextBox Text="{Binding Path=Text, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" />
</DockPanel>
</UserControl>
Và mã sau:
public partial class LabelTextBox : UserControl
{
public static readonly DependencyProperty LabelProperty = DependencyProperty.Register("Label", typeof(string), typeof(LabelTextBox));
public string Label
{
get { return (string)GetValue(LabelProperty); }
set { SetValue(LabelProperty, value); }
}
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(LabelTextBox));
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(LabelTextBox.TextProperty, value); }
}
public LabelTextBox()
{
InitializeComponent();
ClearValue(HeightProperty);
ClearValue(WidthProperty);
}
}
Edit: Đây là đoạn code làm việc chính thức. Tôi chuyển sang ràng buộc nguồn tương đối.
Tôi đã thử điều tương tự lúc đầu cũng như giả định rằng đó là ý tưởng của chủ sở hữu. Thật không may tôi chạy vào cùng một vấn đề và kết thúc sử dụng để ràng buộc là tốt. Ngoài ra các thuộc tính không phụ thuộc của tôi có một giải pháp tùy chỉnh khác để truyền bá thông báo thay đổi thuộc tính. – jpierson