好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

WPF小技巧

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

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

xmlns:Custom="http://HdhCmsTestgalasoft.ch/mvvmlight"
xmlns:i="http://schemas.microsoft测试数据/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft测试数据/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来转换出我们想要的事件。

查看更多关于WPF小技巧的详细内容...

  阅读:38次