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; }
}