WPF 小技巧
程序员文章站
2023-12-30 15:33:46
...
在使用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>