0

MVVMCross ダイアログ セクションの Visible プロパティをバインドしようとしています。

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

また、要素の可視性を直接バインドしようとしましたが、どちらも機能しません。

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

私は何か間違ったことをしていますか?Visibility プラグインをインストールしました。

4

1 に答える 1

2

VisibleDialog Elements は実際にはbool- https://github.com/slodge/MvvmCross/blob/v3/CrossUI/CrossUI.Touch/Dialog/Elements/Element.cs#L71を参照してください

Visibilityこのため、にバインドするときにコンバーターを使用する必要はありませんVisible

Visibleそれ自体が最近、このプル リクエストで Dialog に追加されました - https://github.com/slodge/MvvmCross/pull/294

そのリクエストに関する議論からわかるかもしれませんがVisibleSections やRoot. Sectionしかし、残念なことに、これらの議論が成功した実装に達したとは思わないVisible.

の 1 つを表示/非表示にするための特定のよく理解されたシナリオについては、/クラスの一部の機能を継承してオーバーライドすることで、アプリにこれを実装できるSectionと思いますそれが役立つ場合、継承の一例はhttps://github.com/slodge/MvvmCross-Tutorials/blob/master/DialogExamples/DialogExamples.Touch/BindableElements/BindableSection.csにありますSectionDialogViewControllerDialogAdapterSectionBindableSection

于 2013-08-27T09:23:50.827 に答える