我正在制作一个包含三个按钮的自定义控件。每个按钮代表一个标签。当我单击一个按钮以切换到与该选项卡对应的选项卡时,控件的变量已更新,此变量称为“selectedIndex”。如何更改此索引时触发的自定义事件?
我在这里看过自定义事件的解决方案,但所有这些都是现有事件的副本,例如Click-events。我的问题涉及变量变化事件“。
问候!
答案 0 :(得分:1)
一个选项是让您的对象实现非常标准的INotifyPropertyChanged
interface。没有规则声明对象上的每个属性都需要引发PropertyChanged
事件,因此只需为相关的一个属性引发它。像这样:
public class MyObject : INotifyPropertyChanged
{
private string _myProperty;
public string MyProperty
{
get { return _myProperty; }
set
{
_myProperty = value;
NotifyPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
如果您的.NET版本不支持CallerMemberName
,那么您可以删除它并手动提供属性名称:
NotifyPropertyChanged("MyProperty");
此时,任何调用代码都可以在此对象的任何实例上订阅公共PropertyChanged
事件。此接口特别方便,因为它通常用于许多UI技术中,用于更新数据绑定的UI元素。实际上,所有接口都强制执行该事件的标准名称。如果您愿意,可以放弃界面并创建自定义公共事件。并且只要您的对象在逻辑上需要时调用该事件。暴露事件并调用它的结构将是相同的。