C# 绑定到属性的内容元素
我正在尝试将包含C# 绑定到属性的内容元素,c#,wpf,binding,C#,Wpf,Binding,我正在尝试将包含元素的窗口绑定到dependencyProperty: 这是我的Xaml: <Window x:Class="attachement.xWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xml
元素的窗口绑定到dependencyProperty:
这是我的Xaml:
<Window x:Class="attachement.xWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Menu/>
<ToolBarTray x:Name="ToolBarTray" Grid.Row="1">
</ToolBarTray>
<ScrollViewer Grid.Row="2">
</ScrollViewer>
</Grid>
</Window>
现在我的问题是:如何将xaml中的
元素绑定到代码隐藏中的依赖项属性,以便在执行“myXwindow.Menu=new Menu(){…}”操作时,在窗口中更新菜单
谢谢
注意:我尝试过这样设置xaml:
并删除c#中的dp,这样我就可以直接访问xaml中定义的菜单,它似乎可以工作(没有生成或运行错误),但不允许我在窗口显示后重新设置它您可以将菜单包装到其他控件中
<ContentControl x:Name="_menuContainer">
<Menu/>
</ContentControl>
是的,我实际上已经这样做了,但我希望找到一个不需要包装容器的解决方案(我是一个极简主义者)。但似乎不可能……这是可能的。您只需在property setter中删除旧的/添加新的菜单
到网格
。但我认为这会带来更多的问题,然后是好处。
<ContentControl x:Name="_menuContainer">
<Menu/>
</ContentControl>
public Menu Menu
{
get { return (Menu)_menuContainer.Content; }
set { _menuContainer.Content = value; }
}