UserControl将通知viewmodel,如果用户点击它之外的任何地方或它变得不再可见

时间:2014-01-23 23:13:23

标签: xaml mvvm winrt-xaml

我有一个连接到使用MediaCapture记录音频的viewmodel的元素。如果用户正在录制音频(按下录制按钮),然后导航远离它(点击UI中的其他位置,切换窗口等...),我想在我的视图模型中停止录制。

我希望能够绑定一个依赖项属性,该元素将通知我的viewmodel,如果用户点击该元素之外的任何位置,或者它对用户不再可见)。

自定义用户控件中是否存在可以连接到DP的事件以及报告我正在寻找的内容?

1 个答案:

答案 0 :(得分:0)

特别是对于页面更改,您可以覆盖页面的OnNavigatedFrom方法获取视图模型 var viewModel = LayoutRoot.DataContext as MyViewModelType;

然后在viewModel上调用你的停止记录方法ciewModel.StopRecording()

用于点击其他控件或由于滚动而移出屏幕的录制控件。 我将实现和页面和ui元素已知的事件聚合器,因此它们响应(点击/滚动)您希望用作使记录停止的触发器的任何事件将发布您的视图模型可以订阅的“StopRecordingEvent”并听取事件聚合器。 http://developingzack.blogspot.com/2012/09/what-why-and-how-event-aggregator.html?m=1