管理用户控制事件的主页xaml

发布于 2024-10-30 20:52:25 字数 394 浏览 1 评论 0原文

我需要一个优雅的解决方案(我正在开发 silverlight 4.0)来使用 MVVM 模式解决这个简单的问题(?):

我的主页 xaml 有两个像这样的自定义用户控件(比如说):

<uc:MyCustomUC1>
<uc:MyCustomUC2>

每个都有自己的视图模型,并且都有这些用户控件是相互独立的。

当 MyCustomUC1 中的异步操作完成时,我希望调用 MyCustomUC2 视图模型中的 ICommand,从而刷新 MyCustomUC2 中的数据。我希望这由父页面完成并且全部在 xaml 中。 在用户控件中公开依赖属性、事件处理程序等...一切都可以,因为我拥有用户控件...任何有意义的事情。

有什么想法吗?

I need an elegant solution (I am working on silverlight 4.0) to solve this simple problem(?) using the MVVM pattern:

My mainpage xaml has my two custom user controls like this (say):

<uc:MyCustomUC1>
<uc:MyCustomUC2>

Each one has its own view model and both these user controls are independent of each other.

When an asynchronous operation in MyCustomUC1 has completed, I want an ICommand in MyCustomUC2's viewmodel to be invoked thus refreshing data in MyCustomUC2. I want this done by the parent page and all in xaml.
Exposing dependency properties, event handlers etc in the user controls...anything is ok since I own the user control ...whatever makes sense.

Any ideas ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

落日海湾 2024-11-06 20:52:25

使用Mvvm Lights Messenger,您可以在MyCustomUC2的viewmodel中注册一个监听器来刷新。然后在MyCustomUC1的异步回调中,发送消息进行刷新。

Use Mvvm Lights messenger, you can register a listener in MyCustomUC2's viewmodel to refresh. Then in MyCustomUC1's async call back, send the message to refresh.

忆依然 2024-11-06 20:52:25

您可以使用 PropertyObserver,我相信您可以在这里找到信息:
财产观察者

它将允许您检查一个 ViewModel 中的某些内容何时发生更改,然后在另一个 ViewModel 中采取适当的操作。我最近在一个项目中使用了很多次并且效果很好。

如果我错误地回答了这个问题,我深表歉意。

You could use a PropertyObserver, which I believe you can find info on here:
Property Observer.

It'll allow you to check when something has changed in one ViewModel and then take the appropriate action in another. I've used this quite a bit recently in a project and it has worked pretty well.

Apologies if I've picked up the question incorrectly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文