美文网首页Coding
WPF常用小技巧

WPF常用小技巧

作者: 清水包哟 | 来源:发表于2018-10-24 18:43 被阅读4次

菜单项部分绑定

有时需要动态生成菜单,但是同一个菜单中不仅仅包含动态项,而且包含固定项。这个时候就不能对菜单的ItemsSource进行绑定,而需要通过下面代码中的部分绑定方法实现。

  1. 菜单
<Menu x:Name="Menu">
    <Menu.Resources>
        <!--先把要绑定的动态菜单列表绑定到一个视图源集合-->
        <CollectionViewSource x:Key="items" Source="{Binding ElementName=Menu,Path=DataContext.MenuItemsProperty}"></CollectionViewSource>
    </Menu.Resources>
    <MenuItem Header="demo">
        <MenuItem.ItemsSource>
            <CompositeCollection>
                <MenuItem Header="Item1"></MenuItem>
                <!--然后把视图源集合绑定到集合容器中,就能够根据集合的改变,使用容器模板自动生成MenuItem-->
                <CollectionContainer Collection="{Binding Source={StaticResource items}}"></CollectionContainer>
                <MenuItem Header="Item2"></MenuItem>
            </CompositeCollection>
        </MenuItem.ItemsSource>
    </MenuItem>
</Menu>
  1. 内容菜单
 <ContextMenu x:Key="Menu">
    <ContextMenu.Resources>
        <CollectionViewSource x:Key="Items" Source="{Binding Path=DataContext.ContextMenuItems,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ContextMenu}}"></CollectionViewSource>
    </ContextMenu.Resources>
    <ContextMenu.ItemsSource>
        <CompositeCollection>
            <CollectionContainer Collection="{Binding Source={StaticResource Items}}"></CollectionContainer>
            <MenuItem Header="Item1"></MenuItem>
        </CompositeCollection>
    </ContextMenu.ItemsSource>
</ContextMenu>

XAML条件编译

代码中存在测试代码时,我们不想通过频繁的注释、取消注释来开关代码就会使用编译条件,在不同编译条件下选择性编译。 WPF的.xaml文件中同样可以,我们通过在'AssemblyInfo.cs'文件中增加编译预处理的代码,增一个xmls中的DEBUG预定义。然后再xaml中使用这个预定就可以了。

  1. AssemblyInfo.cs
// 编译预处理
#if DEBUG
[assembly: XmlnsDefinition("DEBUG", "YourNameSpace")]
#endif
  1. MainWindow.xaml
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:DEBUG="DEBUG"

...

<!--条件编译-->
<mc:AlternateContent>
    <mc:Choice Requires="DEBUG">
        <!--这里可放置条件满足时编译的控件-->
    </mc:Choice>
    <mc:Fallback>
        <!--这里可放置条件不满足时编译的控件-->
    </mc:Fallback>
</mc:AlternateContent>

相关文章

  • WPF常用小技巧

    菜单项部分绑定 有时需要动态生成菜单,但是同一个菜单中不仅仅包含动态项,而且包含固定项。这个时候就不能对菜单的It...

  • iOS 知识-常用小技巧大杂烩

    iOS 知识-常用小技巧大杂烩 - 简书

  • WPF简介

    目录 什么是WPF? WPF的历史? 为什么要用WPF及WPF作用 WPF与winForm区别? 什么是WPF? ...

  • 常用小技巧

    在控制台里打印controller的层级: po [UIViewController _printHierarch...

  • 常用小技巧

    Conda相关 conda创建新环境 env_name是环境名 指定安装python3.6版本然后 启动虚拟环境 ...

  • matlab技巧和快捷键

    Matlab常用小技巧及部分快捷键 Matlab常用小技巧一: 1. m文件如果是函数,保存的文件名最好与函数名一...

  • Vim命令整理(Mac Terminal)

    常用命令 小技巧 结束 最后欢迎留言指正,谢谢?!

  • 6个超级实用的Excel小技巧,可直接套用,省时又省力!

    关于Excel常用的办公小技巧,关注小编的朋友知道,小编分享的小技巧有很多,也帮到了不少需要帮助的朋友,因此,今天...

  • 【WPF】WPF介绍

    一、WPF简介 WPF:WPF即Windows Presentation Foundation,翻译为中文“Win...

  • 工作常用小技巧

    git命令 分支下提交个人代码 git add . (提交当前目录下代码) git commit -m 用户名 ...

网友评论

    本文标题:WPF常用小技巧

    本文链接:https://www.haomeiwen.com/subject/twsxtqtx.html