代码之家  ›  专栏  ›  技术社区  ›  David

绑定到属性的内容元素

  •  0
  • David  · 技术社区  · 14 年前

    我想找一扇窗户 <Menu> 元素绑定到从属属性:

    这是我的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();
        }
    }
    

    现在我的问题是:我怎样才能把 <菜单> 元素,以便在执行“myXwindow.Menu=new Menu(){…}”时,在窗口中更新菜单?

    谢谢

    注意:我试着这样设置xaml: <Menu x:Name="Menu"> 删除c中的dp,这样我就可以直接访问xaml中定义的菜单,wich似乎可以工作(没有生成或运行错误),但不允许我在窗口显示后重新设置它

    1 回复  |  直到 14 年前
        1
  •  1
  •   alpha-mouse    14 年前

    你可以把你的 Menu 在另一种控制下

    <ContentControl x:Name="_menuContainer">
        <Menu/>
    </ContentControl>
    

    然后像这样写下你的财产:

    public Menu Menu
    {
        get { return (Menu)_menuContainer.Content; }
        set { _menuContainer.Content = value; }
    }