欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 在wpf 中 用mvvm 的方式 绑定 鼠标事件

在wpf 中 用mvvm 的方式 绑定 鼠标事件

2024/10/23 23:27:50 来源:https://blog.csdn.net/helldoger/article/details/142934586  浏览:    关键词:在wpf 中 用mvvm 的方式 绑定 鼠标事件

在 wpf中, 如果遇到控件的 MouseEnter MouseLeave 属性时, 往往会因为有参数object sender, System.Windows.Input.MouseEventArgs e 很多人选择直接生成属性在后台, 破坏了MVVM, 这其实是不必要的. 我们完全可以用 xmlns:i=“http://schemas.microsoft.com/xaml/behaviors”

完成:

            <TextBlockd:Text="设计时文字"FontSize="50"Text="{Binding Txt1}"><i:Interaction.Triggers><i:EventTrigger EventName="MouseEnter"><i:CallMethodAction MethodName="Test1" TargetObject="{Binding}" /></i:EventTrigger></i:Interaction.Triggers></TextBlock>
        public void Test1(object sender, System.Windows.Input.MouseEventArgs e){Txt1 = "改变了";}

用CallMethodAction 可以绑定到viewmodel中的函数, 并且正确接收鼠标事件 MouseEventArgs

再记录一个 读取Siemens PLC 的通用类

    public class DB10 : INotifyPropertyChanged{public bool B1{get => b1;set{if (b1 != value && value == false){RaisePropertyChanged();}b1 = value;}}public bool B2 { get; set; }public bool B3 { get; set; }public bool B4 { get; set; }public bool B5 { get; set; }public bool B6 { get; set; }public bool B7 { get; set; }public bool B8 { get; set; }public bool B9 { get; set; }public bool B10 { get; set; }public bool B11 { get; set; }public bool B12 { get; set; }public bool B13 { get; set; }public bool B14 { get; set; }public bool B15 { get; set; }public bool B16 { get; set; }public short S1 { get; set; }public short S2 { get; set; }public short S3 { get; set; }public short S4 { get; set; }public short S5 { get; set; }public short S6 { get; set; }public short S7 { get; set; }public short S8 { get; set; }public short S9 { get; set; }public short S10 { get; set; }public short S11 { get; set; }public short S12 { get; set; }public short S13 { get; set; }public short S14 { get; set; }public short S15 { get; set; }public short S16 { get; set; }public float F1 { get; set; }public float F2 { get; set; }public float F3 { get; set; }public float F4 { get; set; }public float F5 { get; set; }public float F6 { get; set; }public float F7 { get; set; }public float F8 { get; set; }public float F9 { get; set; }public float F10 { get; set; }public float F11 { get; set; }public float F12 { get; set; }public float F13 { get; set; }public float F14 { get; set; }public float F15 { get; set; }public float F16 { get; set; }/// <summary>/// 图纸/// </summary>[S7String(S7StringType.S7String, 50)]public string Str1 { get; set; } = string.Empty;/// <summary>/// 图纸/// </summary>[S7String(S7StringType.S7String, 50)]public string Str2 { get; set; } = string.Empty;/// <summary>/// 图纸/// </summary>[S7String(S7StringType.S7String, 50)]public string Str3 { get; set; } = string.Empty;public event PropertyChangedEventHandler? PropertyChanged;private bool b1;private void RaisePropertyChanged([CallerMemberName] string propertyName = ""){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com