【发布时间】:2011-02-08 18:01:03
【问题描述】:
我有一个多部分的问题:
(1) Silverlight 不公开 DataContextChanged 事件是否有充分的理由?如果微软的某个人只是将 FrameworkElement 类中的 internal 更改为 public(就像 WPF 一样),似乎可以避免很多麻烦。
(2) 我发现 one 或 two 不同的方法可以通过在一种或另一种配置中使用 DependencyProperties 来侵入 DataContextChanged 事件。但我无法让它们可靠地工作。到目前为止,我的测试似乎表明,对于我将它们连接到的第一个类,它们触发了被黑的 DataContextChanged 事件就好了,但不会为任何其他类触发。有没有其他人遇到过这个问题?或者更好的是,他们是否已经解决了这个问题?
(3) 我一直想知道我的 DataContext 何时更改的原因是,有一些 UI 操作在 XAML 中很难正确处理,但在代码隐藏中却很简单;对于其中许多事情,我需要处理 ViewModel 引发的事件;因此我需要知道我的 ViewModel 何时发生变化,以便连接事件处理程序。这是正确的世界观吗?或者我想在代码隐藏中处理这类事情的事实是否很好地表明我的想法已经偏离了轨道?我不是 MVVM 纯粹主义者:我只想从这里快速获得好的代码,我并不特别关心我是如何到达那里的。十多年来,代码隐藏已经为我提供了相当不错的服务,我不愿意完全放弃它。但在这一点上,我的实用主义是否让我自己更难了?
【问题讨论】:
-
我听说你在代码隐藏中为你服务了十多年。
-
不管怎样,这个事件应该会在 Silverlight 5 (dotblogs.com.tw/kan/archive/2011/01/28/21097.aspx) 中公开,尽管我确信现在这是一个小小的安慰。
-
很高兴知道。我错过了。
标签: silverlight mvvm