热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

WPF小技巧

在使用mvvm模式开发时,对于Command的绑定是一件很伤脑筋的事情,尽管有强大的Blend类库支持:xmlns:Customwww.galasoft.chmvvmlightxmlns:ischemas.microsoft.comexpression2010interactivityxmlns:eischemas.microsof

在使用mvvm模式开发时,对于Command的绑定是一件很伤脑筋的事情,尽管有强大的Blend类库支持: xmlns:Custom="http://www.galasoft.ch/mvvmlight" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsof

在使用mvvm模式开发时,对于Command的绑定是一件很伤脑筋的事情,尽管有强大的Blend类库支持:

xmlns:Custom="http://www.galasoft.ch/mvvmlight"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"





有时候我们会为“EventName”伤透脑筋:


     xxx

    

     xxx

    

我希望在选中第二个TabItem的时候做一些操作,例如加载数据,反之则清除数据,释放内存。

有了Blend,我们很愉快的空降了一个EventToCommand,然后选择EventName——哎~马!根本木有啥“选中”/“不选中”事件!好忧伤~~

这时候“非天秤座”的小伙伴肯定就果断放弃mvvm模式,写后台代码去了,本文完!

哎,哎,哎,别打脸,别……

我说,我说还不行吗!

  <TabItem >
                <TabItem.Header>
                    <Grid>
                        <CheckBox Visibility="Collapsed" IsChecked="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabItem}}}" >
                            <i:Interaction.Triggers>
                                <i:EventTrigger EventName="Checked">
                                    <Custom:EventToCommand Command="{Binding xxxCommand, Mode=OneWay}"/>
                                i:EventTrigger>
                                <i:EventTrigger EventName="Unchecked">
                                    <Custom:EventToCommand Command="{Binding xxxCommand}"/>
                                i:EventTrigger>
                            i:Interaction.Triggers>
                        CheckBox>
                        <TextBlock Text="设置" FontSize="32" Padding="20,5"  />
                    Grid>
                TabItem.Header>

TabItem>

重点在这里:IsChecked="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabItem}},Mode=TwoWay}

TabItem虽然没有我们想要的事件,但是有个IsSelected属性,所以我们可以借助CheckBox来转换出我们想要的事件。

推荐阅读
author-avatar
曦雯天使
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有