我正在尝试将一个<Menu>
元素绑定到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>
这是我背后的代码:
public partial class xWindow : Window
{
public Menu Menu
{
get { return (Menu)GetValue(MenuProperty); }
set { SetValue(MenuProperty, value); }
}
public static readonly DependencyProperty MenuProperty = DependencyProperty.Register("Menu", typeof(Menu), typeof(xWindow), new UIPropertyMetadata(0));
public xWindow()
{
InitializeComponent();
}
}
现在我的问题是:如何将我的xaml中的<Menu>
元素绑定到后面代码中的依赖项属性,这样当我执行“myXwindow.Menu = new Menu(){...};”时菜单在窗口中更新?
感谢
注意:我尝试像这样设置xaml:<Menu x:Name="Menu">
并删除c#中的dp所以我可以直接访问xaml中定义的菜单,这似乎有效(没有构建或运行错误)但是没有允许我在显示窗口后重新设置
答案 0 :(得分:1)
您可以将Menu
包装在其他控件中
<ContentControl x:Name="_menuContainer">
<Menu/>
</ContentControl>
然后像这样写下你的财产:
public Menu Menu
{
get { return (Menu)_menuContainer.Content; }
set { _menuContainer.Content = value; }
}