• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

WPF 小技巧

mysql 搞代码 4年前 (2022-01-09) 18次浏览 已收录 0个评论

在使用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的时本文来源gao($daima.com搞@代@#码(网候做一些操作,例如加载数据,反之则清除数据,释放内存。

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

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

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

我说,我说还不行吗!

  <span><<span>TabItem <span>>                <span><<span>TabItem.Header<span>>                    <span><<span>Grid<span>>                        <span><<span>CheckBox <span>Visibility<span>="Collapsed"<span> IsChecked<span>="<span>{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabItem}}}<span>" <span>>                            <span><<span>i:Interaction.Triggers<span>>                                <span><<span>i:EventTrigger <span>EventName<span>="Checked"<span>>                                    <span><<span>Custom:EventToCommand <span>Command<span>="<span>{Binding xxxCommand, Mode=OneWay}<span>"<span>/>                                <span></<span>i:EventTrigger<span>>                                <span><<span>i:EventTrigger <span>EventName<span>="Unchecked"<span>>                                    <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><<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><!---ecms <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></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来转换出我们想要的事件。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:WPF 小技巧

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址