gpt4 book ai didi

c# - 用户是通过 UI 更改了值,还是被依赖属性更改了?

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:08 27 4
gpt4 key购买 nike

我有一个 slider ,它的 value 属性与依赖属性相关联。我需要知道用户是否通过 GUI 更改了值。不幸的是,此 slider 的值通常会通过代码更改,并且在发生这种情况时会触发“Value_Changed”事件。

我知道有两种方法可以解决这个问题:

  1. 每次在更改值之前在代码中创建一个 bool 值并将其更改为 true,之后将其更改为 false,然后在 Value_Changed 事件中检查此 bool 值。
  2. 将按键、点击和拖动停止事件连接到 slider 。

我只是想知道是否有更好的方法来了解用户是否通过 UI 更改了值?

最佳答案

我会这样做:

public bool PositionModifiedByUser
{ /* implement IPropertyChanged if need to bind to this property */ }

// use this property from code
public double Position
{
get { return m_position ; }
set { SetPropertyValue ("PositionUI", ref m_position, value) ;
PositionModifiedByUser = false ; }
}

// bind to this property from the UI
public double PositionUI
{
get { return m_position ; }
set { if (SetPropertyValue ("PositionUI", ref m_position, value))
PositionModifiedByUser = true ; }
}

SetPropertyValue 是一个帮助程序,用于检查相等性并在值实际发生变化时触发属性更改通知。

关于c# - 用户是通过 UI 更改了值,还是被依赖属性更改了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15477272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com