【发布时间】:2014-10-18 17:12:41
【问题描述】:
我在 C#/Silverlight 中有一个自定义 datepicker 元素,它的 datetime 属性绑定到源属性。当我通过日期选择器更改日期时,它会正确更新源属性,但有时,由于它是无效日期,我需要立即将源属性设置回其先前的值,并将该更改反映回 UI。我能够正确设置源对象,然后正确重置它,但我无法将日期选择器更改回其原始日期。请注意,就格式无效而言,我并不是指无效日期,只是基本上该日期已被“采用”。
我认为问题在于我试图在自定义日期选择器上设置依赖对象,而它正在从最后一个设置操作触发其绑定。澄清一下:在 UI 中更改了日期选择器,这会更新自定义日期选择器中的依赖对象,这会触发绑定,从而更新源属性,这会导致源属性将其自身设置回其先前的值,但无法设置再次依赖对象,因为它仍处于被设置为用户在 UI 中选择的值的中间。
可以将依赖对象设置为新的东西,作为设置它引起的事件链的一部分吗?有什么方法可以正确实现这个,或者以某种方式解决这个问题?有没有可能我误诊了我的问题?
自定义日期选择器元素基本上是一个标准日期选择器,其中包含一些其他 UI 元素,但我相信如果它只是标准日期选择器,我也会遇到同样的问题。
【问题讨论】:
标签: c# silverlight xaml data-binding dependency-properties