【发布时间】:2019-11-10 19:54:56
【问题描述】:
在我的应用程序中,我有某些 ContentView 在它们变得可见时需要采取行动(即加载它们的数据)。系统中有几个事件可以导致它们变得可见,因此将加载数据操作与这些事件联系起来是有问题的,因为其中许多事件可能一个接一个地发生。如果我有办法在 Visible 属性变为“真”时简单地加载数据,那么我将处于一个更好的位置。
我创建了一个简单的示例来说明我想要完成的工作。即当 Visible 属性更改时,我需要 ContentView 生成事件。它不起作用,但我认为它很接近,我会很感激有人向我展示如何使它起作用。如果我可以让这个示例正常工作,那么我可以将所有需要此功能的 ContentView 包装在一个基本 ContentView 中,以提供我需要的事件。
所有代码都可以在 GitHub here 上找到。如果有帮助,您可以下载代码以查看整个解决方案。
首先我定义了一个 PanelView 控件。请注意,我在后面的代码中将 IsVisible 属性绑定到 PanelVisible 属性...
然后在后面的代码中我有两个 BindableProperty 道具,PanelVisibleProperty 和 ShowingProperty。 PanelVisible 从上面绑定到 IsVisible。在 propertyChanged 事件中,我正在调用 Showing 命令。
在我的 MainPage.xaml 中,我有一个按钮,单击该按钮会调用 ShowPanelView 命令,该命令设置 PanelViewVisible 属性并使 PanelView 显示(最初在加载时隐藏)。并且,我将 PanelView 中的显示命令绑定到模型中的 PanelShowing 命令。
最后,这里是绑定到页面的 MainPageModel...
我在这里没有收到 propertyChanged 事件,如果我能做到这一点,那么我认为它的其余部分会正常工作。
谁能看出问题出在哪里?非常感谢!
【问题讨论】:
标签: xamarin xamarin.forms