首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将LayoutAnchorable的可见性绑定到可检查的MenuItem

将LayoutAnchorable的可见性绑定到可检查的MenuItem
EN

Stack Overflow用户
提问于 2020-07-10 19:31:04
回答 1查看 180关注 0票数 0

C#,WPF。我想使用可选菜单项显示/隐藏AvalonDock面板。虽然我可以使用_Click事件来实现这一点,但我认为使用绑定将是一种很好的实践,而且完全使用XAML也可以实现这一点。

我怀疑答案应该是沿着this one的路线,并将我的尝试基于那里给出的答案之一。

这段代码编译并运行,但被选中的菜单和可锚定窗格之间没有链接。关键的一行是:

代码语言:javascript
复制
<MenuItem Header="Panel" Name="PanelVisible" IsCheckable="True" IsChecked="{Binding Path=testAnchorable.IsVisible, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">

我怎么才能让它正常工作呢?

代码语言:javascript
复制
<Window x:Class="TestAvalon.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:dock="http://schemas.xceed.com/wpf/xaml/avalondock"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<Grid>

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="20"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <Menu Height="18" HorizontalAlignment="Stretch" Name="menu1" VerticalAlignment="Top" Grid.Row="0">
            <MenuItem Header="View">
                <MenuItem Header="Panel" Name="PanelVisible" IsCheckable="True" IsChecked="{Binding Path=testAnchorable.IsVisible, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
                </MenuItem>
            </MenuItem>
        </Menu>

        <dock:DockingManager x:Name = "Dockman" DataContext = "{Binding DockManagerViewModel}"
            DocumentsSource = "{Binding Documents}" DockPanel.Dock = "Left" Grid.Row = "1" >

        <dock:LayoutRoot x:Name = "_layoutRoot" >
            <dock:LayoutPanel x:Name = "_layoutPanel" >
                <dock:LayoutAnchorablePane DockWidth="400">
                    <dock:LayoutAnchorable x:Name ="testAnchorable" Title = "TEST PANE" IsSelected = "True">
                        <TextBlock Name="tb" Text="*****"/>
                    </dock:LayoutAnchorable >
                </dock:LayoutAnchorablePane >
            </dock:LayoutPanel >
        </dock:LayoutRoot >
    </dock:DockingManager>
    </Grid>
</Grid>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-01 19:57:07

这个问题现在有了一个解决方案:

Binding an AvalonDock LayoutAnchorable IsVisible property

(这里给出了两个答案,我认为它们都能完成这项工作。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62833372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档