首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当变量更改从代码类发送到形成类c#时,生成事件

当变量更改从代码类发送到形成类c#时,生成事件
EN

Stack Overflow用户
提问于 2012-04-03 06:06:42
回答 2查看 320关注 0票数 2

新手的问题。

我有两个c#类--一个代码类(比如,CodeClass)和一个表单类(例如,FormClass)。在CodeClass中,我将使用许多函数来定期更新类中的字符串(我可以使用属性或任何适当的方法)。当这个字符串值发生变化时,我需要一些通知其他类的方法。也就是说,我将尝试让FormClass订阅字符串消息上的更改事件,然后将值打印到文本框或类似的地方。但是,在将来的某个时候,我需要从CodeClass中提供API函数--所以基本上我需要一种方法来通知任何订阅类对字符串消息的更改(在CodeClass之外的任何地方都不会修改字符串消息--它发生在CodeClass中的函数中)。我尝试过事件和委托等,但这些似乎都是通过修改字符串消息(属性)的外部类来实现的。

问候等

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-03 06:09:37

您需要实现INotifyPropertyChanged接口:

代码语言:javascript
运行
AI代码解释
复制
class CodeClass : INotifyPropertyChanged
{

    private string _myProperty;
    public string MyProperty
    {
        get { return _myProperty; }
        set
        {
            _myProperty = value;
            OnPropertyChanged("MyProperty");
        }
    }

    #region INotifyPropertyChanged implementation

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null)
        handler(this, new PropertyChangedEventArgs(propertyName));
    }

    #endregion

}

FormClass中,您可以订阅这样的PropertyChanged事件:

代码语言:javascript
运行
AI代码解释
复制
codeClass.PropertyChanged += codeClass_PropertyChanged;

...

void codeClass_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName = "MyProperty")
    {
        ...
    }
}
票数 5
EN

Stack Overflow用户

发布于 2012-04-03 06:10:56

只需创建一个事件,并在字符串更改时触发该事件。

代码语言:javascript
运行
AI代码解释
复制
public class CodeClass
{
    private string _someString;
    public string SomeString 
    {
        get { return _someString; }
        set 
        {
            _someString = value;
            if (SomeStringChanged != null) { SomeStringChanged(value) }
        }
    }
    public event Action<string> SomeStringChanged;
}

注意:有一种标准的方法可以这样做,即INotifyPropertyChanged接口,就像使用的另一个答案一样。这主要用于WPF和Silverlight,但您没有理由不能在Windows窗体中使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9994959

复制
相关文章
在 Linux 上用密码加密和解密文件
文件的保护和敏感文档的安全加密是用户长期以来关心的问题。即使越来越多的数据被存放在网站和云服务上,并由具有越来越安全和高强度密码的用户账户来保护,但我们能够在自己的文件系统中存储敏感数据仍有很大的价值,特别是我们能够快速和容易地加密这些数据时。
用户1685462
2021/09/13
2.3K0
在 Linux 上用密码加密和解密文件
文件的保护和敏感文档的安全加密是用户长期以来关心的问题。即使越来越多的数据被存放在网站和云服务上,并由具有越来越安全和高强度密码的用户账户来保护,但我们能够在自己的文件系统中存储敏感数据仍有很大的价值,特别是我们能够快速和容易地加密这些数据时。
用户7639835
2021/09/01
1.8K0
domaincontext load 回调
This post is not specific to RIA Services but I thought I'd add it to the title since the example is based on RIA Services. Anyone who is familiar with RIA Services will recognize this piece of code that is used to load a entity - EntityQuery<Person> perso
阿新
2018/04/12
6790
UWP 上架失败因为没有添加隐私策略
在使用 UWP 上架之前需要经过微软的审核,在美国很看重个人隐私,因此需要在两个地方都填写上隐私策略。第一个是应用商店里面,第二个是应用程序里面
林德熙
2022/08/12
2630
UWP 上架失败因为没有添加隐私策略
如何使用高大上的方法调参数
本文主要介绍作者与 Elad Hazan, Adam Klivans 合作的最新论文: Hyperparameter Optimization: A Spectral Approach(https://arxiv.org/abs/1706.00764) 那么,在介绍具体算法之前,我们先要理解一个很重要的问题: 调参数这个东西,关我 x 事? 因为它非常有用。 调参数是指这么个问题:你有 n 个参数,每个参数需要赋一个值。赋完值之后,你用这些参数做一个实验,可以看到一个结果。根据这个结果,你可以修改你
AI研习社
2018/03/19
4.4K0
如何使用高大上的方法调参数
解决gitpush的时候因为误加入特大文件,导致push失败
起因:在add和commit-push时手快了,直接导致误操作将某个视频文件也push进去了,然后等了半天,没有上传完,然后就一直报错,连续三天没法提交代码,
十四君
2019/11/28
5340
使用travis-ci自动部署github上的项目
如下图所示,根据需要配置构建信息 添加github的Token到环境变量中,用户名,邮箱也可添加进去,这样配置文件中就可以使用了 生成Token见步骤5.注意:配置私密的环境变量时一定要加密,因为会显示在日志中且能够被他人看到
易墨
2018/09/14
1.2K0
使用travis-ci自动部署github上的项目
Abaqus的inp文件加密方法介绍
在某些情况下,在Abaqus inp文件中存在一些数据,这些数据涉及机密内容,非授权用户不被允许查看该类内容。远算云具备国家信息安全等级保护三级认证,是除金融行业外最高信息安全等级
开物小编
2021/04/25
2K0
zip文件加密的几种破解方法
ZipCenOp.jar 链接: https://pan.baidu.com/s/1e0Ni2OjxmYEdOY7gGbv6gg 提取码: 29qi
全栈程序员站长
2022/09/05
29.9K1
你的项目失败全因为这个原因
程序员在设计系统或者做需求分析时,难免会因为需求分析的不充分或者因为一些现象而迷惑了自己,最终导致模型不稳定而使项目举步维艰甚至项目失败。然而,这些都是可以通过一些方法避免的,今天我们就试图通过逻辑学里的一些方法来解释这一切。
ImportSource
2019/07/04
5360
你的项目失败全因为这个原因
因为n卡驱动问题导致的安装ubuntu失败的解决方法
最近终于在我的飞行堡垒上装成功了ubuntu18.04了,哎,不容易哈,大一刚接触linux的时候,我就想给电脑装ubuntu,脱坑windows,但是每次装系统的时候都会卡在ubuntu的logo那里,无奈的一批,谷歌了很多,试了很多方法都失败了。 然后昨天无意中看到一篇关于ubuntu N卡驱动导致ubuntu安装失败的解决方法的文章。
kevinfaith
2018/09/18
5.2K0
因为n卡驱动问题导致的安装ubuntu失败的解决方法
桌面应用|在 Linux 上使用 eCryptFS 加密文件和目录
作为罪犯,你需要为自己的身份保密;而作为中情局成员,你同样也需要为自己的身份保密。但是,你却不是他们其中的任何一员,你只是不想其他人查探到你的金融数据、家庭照片、尚未出版的手稿,或者记录着你能发家致富的最初想法的私密笔记。
用户8710643
2021/07/12
2.9K0
Neuron:精神病学中的功能神经成像和失败案例
精神疾病包括复杂的认知和情感异常,是最使人衰弱和对了解最少的疾病之一。目前的治疗主要依赖于针对大脑功能(药物)或学习过程(心理治疗)的干预措施。关于这些干预措施如何介导其治疗效果的机制仍不清楚。从20世纪90年代初开始,无创功能神经成像,加上认知神经科学的平行发展,似乎标志着精神病学以神经生物学为基础的诊断和治疗的新时代的到来。然而,尽管进行了30年的神经影像学研究,我们仍然缺乏任何精神疾病的神经生物学解释。同样,功能性神经影像学在临床决策中不起作用。在此,我们对这一僵局提出了批判性评论,并建议该领域如何更好地发展,并提供有影响的神经生物学见解。
悦影科技
2023/02/28
4380
驱动模块(ko)文件加载失败分析
            在实际工作中,通常出现SDk编译出来的驱动模块,在最小系统中加载失败,即insmod xxx.ko 失败,“disagree param with the version"等之类的提示。
用户4148957
2022/06/14
3K0
对于load方法的理解
关于load方法我相信大家应该有所了解。这篇文章主要目的是记录我在看 ObjC源码时对于load方法的一些新的认知,所以在这篇文章里面会粘贴部分关键的 ObjC源码。
CC老师
2022/01/14
9690
对于load方法的理解
JFR 定位因为 SSL 导致 CPU Load 飚高的问题
由于建立了很多数据库链接,猜想可能是数据库比较慢,查看数据库这段时间的 SQL 统计,发现数据库并不慢:
干货满满张哈希
2021/04/12
7250
JFR 定位因为 SSL 导致 CPU Load 飚高的问题
Centos下Mysql因为pid文件启动失败问题解析
不管是直接启动Mysql反馈的错误信息,还是错误日志里的报错信息,信息中都指向了Mysql的PID文件。而笔者直接去查找相应的文件,确实不存在。
石瞳禅
2018/09/18
2.9K0
如何在 Linux 上加密文件?
在处理敏感数据时,文件加密是一种重要的安全措施。在 Linux 系统中,你可以使用各种加密工具和技术来加密文件,以保护其内容不被未经授权的访问。本文将介绍如何在 Linux 上加密文件,并提供详细的步骤和示例。
网络技术联盟站
2023/06/19
1.1K0
如何在 Linux 上加密文件?
iOS load方法和initialize方法的异同
● load方法会在加载类的时候就被调用,也就是说iOS应用启动的时候,就会加载所有的类,会调用每个类的+load方法。
赵哥窟
2020/06/16
1.5K0
点击加载更多

相似问题

html“checked=”无法获得css :checked=选中

25

如何使用jQuery删除未选中复选框的checked=“选中”?

30

checked if >如果选中,则onChange submit problem复选框

42

Wordpress checked=“选中”语法

20

在html5中要将复选框设置为选中,我应该简单地使用checked (作为属性)还是使用checked=" checked“(作为属性)?

52
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文