【问题标题】:Boolean Event Handler property does not get called / how to proberly set it没有调用布尔事件处理程序属性/如何正确设置它
【发布时间】:2019-01-03 20:16:31
【问题描述】:

当我的布尔值变为真时,我想做某事。我实现了这个版本

public bool NextW_method
{
  get { return NextWClicked; }
  set
  {
    if (NextWClicked == true && value == false)
    {
      if (Karm <= zahl)
      {
        NextWClicked = false;
        //do sth
      }
      else
      {
        NextWClicked = false;
       //do sth else
      }
      NextWClicked = value;
    }
  }

bool 变量设置为 true,但该方法无法识别更改。我做错了什么?

编辑 改变了我访问某些值的方式,这个问题不再有效

【问题讨论】:

  • 我看不出它是如何设置为true的,你似乎只在你的setter中处理false的情况。看起来你可能会寻找类似INotifyPropertyChanged 的东西,但你真的不会实现它那么复杂
  • 调试的时候甚至不调用该方法。我能理解为什么,因为它只是一种方法,我从来没有调用过。我在几个来源上找到了相同的代码,它在那里工作,但不适合我.... INotifyPropertyChanged 似乎很多代码只是为了一个简单的更改事件....但是谢谢

标签: c# boolean


【解决方案1】:

您是否涵盖其他情况,而不是

if (NextWClicked == true && value == false)

你调试的时候NextWClicked的值是否设置为“true”?

尝试涵盖所有情况,将“else”块添加到您的属性中。

【讨论】:

  • NextWClicked 应该设置为 true。我认为 value 意味着 prev 值所以我很困惑我应该检查什么值
  • 好的,试试简单的{get; set;} 属性然后检查,如果你甚至在调试时丰富你的属性。
  • 我不知道我的代码是否已经是一个属性。我只是写了那些代码行。我似乎不明白的是,该方法永远不会被调用
  • 我在代码中添加了一个调试标志的东西.. 好几个。在 bool 检查和 bool 为真后应调用的代码中。但是,只要调用布尔检查,什么都不会发生
猜你喜欢
  • 2018-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 2011-01-31
  • 1970-01-01
  • 2012-04-20
  • 2016-05-13
相关资源
最近更新 更多