WPF 小技巧

WBOY
풀어 주다: 2016-06-07 15:10:42
원래의
993명이 탐색했습니다.

在使用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模式,写后台代码去了,本文完!

 

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

我说,我说还不行吗!

 

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

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

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

 

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿