【问题标题】:Using MVVMCross and Monotouch, can you bind to a Dialog.Section Visible property?使用 MVVMCross 和 Monotouch,您可以绑定到 Dialog.Section Visible 属性吗?
【发布时间】:2013-08-26 23:25:57
【问题描述】:

我正在尝试绑定 MVVMCross 对话框部分的 Visible 属性。

var refillSection = new Section() {
    new StringElement("Refill").Bind(this, "SelectedCommand OpenExternal")
}.Bind(this, "Visible IsExternal,Converter=Visibility");
root.Add(refillSection);

我也试过直接绑定 Visible 的元素,但也不管用。

var refillSection = new Section() {
    new StringElement("Refill").Bind(this, "SelectedCommand OpenExternal;Visible IsExternal,Converter=Visibility")
};
root.Add(refillSection);

我做错了吗?我已经安装了可见性插件。

【问题讨论】:

    标签: mvvmcross monotouch.dialog


    【解决方案1】:

    对话框上的Visible Elements 实际上是bool - 请参阅https://github.com/slodge/MvvmCross/blob/v3/CrossUI/CrossUI.Touch/Dialog/Elements/Element.cs#L71

    因此,在绑定到Visible 时,您不需要使用任何Visibility 转换器。

    Visible 本身最近已在此拉取请求中添加到 Dialog - https://github.com/slodge/MvvmCross/pull/294

    正如您可能从关于该请求的讨论中看到的那样,那里有一些关于如何扩展Visible 以便它适用于Sections 甚至适用于Root 的讨论。然而,遗憾的是,我认为这些讨论没有成功实施——所以我不相信默认的Section 目前适用于Visible

    对于您显示/隐藏您的 Sections 之一的特定的易于理解的场景,那么我认为您可能能够通过继承和覆盖 @ 中的某些功能在您的应用中实现这一点987654337@ 可能还有DialogViewController/DialogAdapter 类。如果有帮助,Section 继承的一个例子是https://github.com/slodge/MvvmCross-Tutorials/blob/master/DialogExamples/DialogExamples.Touch/BindableElements/BindableSection.cs 中的BindableSection

    【讨论】:

    • 我实际上是在使用 StyledStringElement 的一个子类,它似乎没有使用 Visible。我添加了一个问题:github.com/slodge/MvvmCross/issues/403。我将看看隐藏这些部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2013-08-23
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多