我无法访问页面的ViewModel属性以将其绑定(bind)到IsVisible属性。如果不设置BindingContext,则只能绑定(bind)它。有没有办法在设置BindingContext的同时访问页面的viewmodel/root属性?

页面XAML:

<eventViews:EventInfoWidget BindingContext="{Binding EventViewModel}" IsVisible="{Binding IsEventInfoWidgetEnabled}" />
<eventViews:AvailableShiftInfoWidget BindingContext="{Binding EventViewModel}" IsVisible="{Binding IsAvailableShiftInfoWidgetEnabled}"></eventViews:AvailableShiftInfoWidget>

ViewModel:
public EventViewModel EventViewModel { get; }
public bool IsEventInfoWidgetEnabled => _IsEventInfoWidgetEnabled.Value;
public bool IsAvailableShiftInfoWidgetEnabled => _IsAvailableShiftInfoWidgetEnabled.Value;

IsVisibile属性只能绑定(bind)到EventViewModel对象属性,但是我想将其绑定(bind)到页面的viewmodel
  • IsEventInfoWidgetEnabled
  • IsAvailableShiftInfoWidgetEnabledEnabled
  • 最佳答案

    找到解决方案后,您必须指定源,然后设置属性的路径。

    首先设置页面名称

    <pages:AppContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    x:Name="ShiftPage">
    

    之后,只需将IsVisible属性绑定(bind)到正确的源
    IsVisible="{Binding Source={x:Reference ShiftPage}, Path=BindingContext.IsEventInfoWidgetEnabled }"
    

    关于c# - Xamarin表单绑定(bind)-访问父属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50798797/

    10-09 06:02
    查看更多