如何绑定到不是当前绑定上下文的viewmodel上的属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何绑定到不是当前绑定上下文的viewmodel上的属性相关的知识,希望对你有一定的参考价值。

我有一个标签:

<Label BindingContext="{Binding BModel}"
       Text="{Binding BoundDataItem.CurrentValue.Value}"
       IsVisible="{Binding IsEditButtonShown}"/>

如果没有Binding上下文,IsVisible属性就像它应该的那样工作,但是现在我需要为特定的数据片段设置绑定上下文,但我仍然需要IsVisible属性才能工作。 IsEditButtonShown是我的视图模型上的属性。

我试过了:

IsVisible="{Binding IsEditButtonShown, Source={x:Reference CurrentPagename}}

什么也没做,而且

IsVisible="{Binding IsEditButtonShown, Source={x:Reference CurrentViewModel}}

给出了一个关于无法找到ViewModel的错误(这是在将其添加到顶部的页面后使用xmlns:viewmodel =“clr-namespace ...”

我也尝试过另一种方式,我使用Source = x:引用与BModel,但这也不起作用。

有任何想法吗?

答案

所以,显然我是个白痴。看来我毕竟不需要BindingContext。现在Label看起来像这样:

<Label Text="{Binding BModel.BoundDataItem.CurrentValue.Value}"
       IsVisible="{Binding IsEditButtonShown}"/>

它似乎像它应该的那样工作。

有趣的是,当你开始向他人解释时,事情会发生在你身上。

以上是关于如何绑定到不是当前绑定上下文的viewmodel上的属性的主要内容,如果未能解决你的问题,请参考以下文章

如何将listview项绑定绑定到页面的Viewmodel?

将 WPF xaml 绑定到 ViewModel 而不构造它

将 IsEnabled 绑定到父 ViewModel 而不是 UserControl ViewModel

Xamarin表单ListView ItemTapped / ItemSelected在XAML上绑定命令

如何在 WPF 中使用多个 ViewModel 并通过一个 MainViewModel 绑定它们?

WPF 事件绑定到 ViewModel(对于非命令类)