gpt4 book ai didi

silverlight - 检测 Silverlight 中更改的 DataContext

转载 作者:行者123 更新时间:2023-12-04 21:25:02 26 4
gpt4 key购买 nike

我有一个多部分的问题:

(1) Silverlight 不公开 DataContextChanged 事件是否有充分的理由?如果 Microsoft 的某个人刚刚更改 internal,似乎可以避免很多麻烦。至public在 FrameworkElement 类中(就像 WPF 一样)。

(2) 我找到了onetwo通过在一种或另一种配置中使用 DependencyProperties 来侵入 DataContextChanged 事件的不同方法。但我无法让它们可靠地工作。到目前为止,我的测试似乎表明,对于我将它们连接到的第一个类,它们触发了被黑的 DataContextChanged 事件就好了,但不会为任何其他类触发。有没有其他人遇到过这个问题?或者更好的是,他们是否已经解决了这个问题?

(3) 我一直想知道我的 DataContext 何时更改的原因是,有一些 UI 操作在 XAML 中很难正确处理,但在代码隐藏中却很简单;对于其中许多事情,我需要处理 ViewModel 引发的事件;因此我需要知道我的 ViewModel 何时发生变化,以便连接事件处理程序。这是正确的世界观吗?或者我想在代码隐藏中处理这类事情的事实是否很好地表明我的想法已经偏离了轨道?我不是 MVVM 纯粹主义者:我只想从这里快速获得好的代码,我并不特别关心我是如何到达那里的。代码隐藏已经为我服务了十多年了,我不愿意完全放弃它。但在这一点上,我的实用主义是否让我自己更难了?

最佳答案

"But is my pragmatism making it harder on myself at this point?"



我不会称之为实用主义。我称之为对变化的恐惧;留在你的舒适区。如果您放弃旧的思维方式并接受新的思维方式,生活实际上会容易得多(我确切地知道您的意思 - 我和您在同一条船上使用代码隐藏)。

现在,离开我的肥皂盒,得到一个更实际的答案:

当您想要检测模型中的更改时,请连接到允许您检测模型中的更改的事件。 DataContext 并不是真正的模型...您的所有模型对象都将具有 INotifyPropertyChanged 的​​实现。您应该为给定模型 Hook ,或者为 ObservableCollection Hook 类似的东西。

既然数据绑定(bind)确实有效,Silverlight/WPF 使所有这类事情变得更容易。

不要与框架抗争。不要将旧的 ASP.Net 实践带到这个游戏中......它不会帮助你。这样,您将失去框架功能的最佳部分。

干杯。

关于silverlight - 检测 Silverlight 中更改的 DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4936563/

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