tôi đã tạo một điều khiển người dùng trong WPF:Làm thế nào để đọc một tham số được thông qua trong một UserFrol WPF?
<UserControl x:Class="TestUserControl.Controls.GetLatest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TextBlock Name="theTextBlock"/>
</UserControl>
Các mã sau có một tham số gọi là "FirstMessage" mà nó đặt như nội dung của TextBlock điều khiển người dùng của tôi:
public partial class GetLatest : UserControl
{
public string FirstMessage { get; set; }
public GetLatest()
{
InitializeComponent();
theTextBlock.Text = this.FirstMessage;
}
}
Trong mã chính của tôi Tôi có thể đặt thông số FirstMessage trong điều khiển người dùng của mình với intellisense:
<Window x:Class="TestUserControl.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"
xmlns:controls="clr-namespace:TestUserControl.Controls"
>
<StackPanel>
<controls:GetLatest FirstMessage="This is the title"/>
</StackPanel>
</Window>
Tuy nhiên, nó vẫn không đặt văn bản. Tôi đã thử Text = "{Binding Path = FirstMessage}" và các cú pháp khác mà tôi đã tìm thấy nhưng không có gì hoạt động.
Tôi làm cách nào để truy cập giá trị FirstMessage trong điều khiển người dùng của mình?
có! chính xác những gì tôi đang tìm kiếm, cảm ơn! –
Tôi đã thử giải pháp của bạn và nhận được lỗi "Độ sâu cây logic vượt quá trong khi đi qua cây. Điều này có thể chỉ ra một chu kỳ trong cây." nhưng khi tôi loại bỏ dòng này.DataContext = này; lỗi biến mất nhưng ràng buộc sẽ không hoạt động. vấn đề ở đây là gì? –
@Tri Q: Tôi cũng thấy ngoại lệ chiều sâu cây hợp lý nhưng ở mã khác. Dường như không có nhiều tài liệu liên quan đến lỗi này trên web nên tôi rất tò mò nếu bạn có thể trả lời nếu bạn đã tìm thấy giải pháp. – jpierson