Ili*_*rei 3 c# xaml binding xamarin xamarin.forms
我无法访问页面的ViewModel属性以将其绑定到IsVisible属性。如果不设置BindingContext,则只能绑定它。有没有办法在设置BindingContext的同时访问页面的viewmodel / root属性?
页面XAML:
<eventViews:EventInfoWidget BindingContext="{Binding EventViewModel}" IsVisible="{Binding IsEventInfoWidgetEnabled}" />
<eventViews:AvailableShiftInfoWidget BindingContext="{Binding EventViewModel}" IsVisible="{Binding IsAvailableShiftInfoWidgetEnabled}"></eventViews:AvailableShiftInfoWidget>
Run Code Online (Sandbox Code Playgroud)
ViewModel:
public EventViewModel EventViewModel { get; }
public bool IsEventInfoWidgetEnabled => _IsEventInfoWidgetEnabled.Value;
public bool IsAvailableShiftInfoWidgetEnabled => _IsAvailableShiftInfoWidgetEnabled.Value;
Run Code Online (Sandbox Code Playgroud)
IsVisibile属性只能绑定到EventViewModel对象属性,但是我想将其绑定到页面的viewmodel
找到解决方案后,您必须指定源,然后设置属性的路径。
首先设置页面名称
<pages:AppContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
x:Name="ShiftPage">
Run Code Online (Sandbox Code Playgroud)
之后,只需将IsVisible属性绑定到正确的源
IsVisible="{Binding Source={x:Reference ShiftPage}, Path=BindingContext.IsEventInfoWidgetEnabled }"
Run Code Online (Sandbox Code Playgroud)