Câu hỏi WPF/XAML đơn giản. Trong XAML, làm thế nào để tôi tham chiếu đối tượng Self/this trong một ngữ cảnh cụ thể? Trong một ứng dụng rất cơ bản với một cửa sổ chính, một điều khiển và một thuộc tính C# được mã hóa của cửa sổ, tôi muốn ràng buộc thuộc tính của điều khiển với thuộc tính được mã hóa bằng tay của cửa sổ.Ràng buộc tự/'điều này' trong XAML
Trong mã, điều này rất dễ dàng - trong constructor của Window, tôi đã thêm này:
Binding bind = new Binding();
bind.Source = this;
bind.Path = new PropertyPath("ButtonWidth");
button1.SetBinding(WidthProperty, bind);
Rõ ràng, tôi có một tài sản gọi là ButtonWidth, và một điều khiển được gọi là button1. Tôi không thể tìm ra cách để làm điều này trong XAML. nỗ lực khác nhau như ví dụ sau đây chưa từng làm việc:
<Button x:Name="button1" Width="{Binding Source=Self Path=ButtonWidth}"/>
<Button x:Name="button1" Width="{Binding RelativeSource={RelativeSource Self} Path=ButtonWidth}"/>
vv
Cảm ơn
Cảm ơn bạn rất nhiều vì bài đăng này. Nó đã giúp tôi rất nhiều! Tôi đã tìm kiếm một giải pháp tốt 3 giờ. –
Tôi có một DataGrid nơi nếu người dùng truy cập một trong những CommandItem của ContextMenu trong Command's thông qua KeyBinding của InputBinding có CommandParameter = "{Binding ElementName = MyDataGrid, Path = SelectedItems}", nó sẽ vượt qua SelectedItems đến Bound ICommand. Tuy nhiên, null được truyền nếu nó được truy cập thông qua ContextMenu. Tôi đã thử CommandParameter = "{Binding SelectedItems}", "{Binding ElementName = MyDataGrid, Đường dẫn = SelectedItems}", "Binding RelativeSource = {RelativeSource FindAncestor, AncestorType = {x: Loại DataGrid}}, Path = SelectedItems}" . Tôi đã đặt CommandParameter trước Command. – Tom