您好我已经在My BookViewVM中定义了属性
private Visibility _isLoaderPageView = Visibility.Hidden;
public Visibility IsLoaderPageView
{
get
{
return _isLoaderPageView;
}
set
{
_isLoaderPageView = value;
RaisePropertyChanged("IsLoaderPageView");
}
}
我在Page.xaml页面上调用了这本bookViewVM,但在Page.xaml上,其他一些PageViewVM已经绑定但是我必须调用BookViewVM属性:
<views:LoadingAnimation x:Name="ldrControl" Margin="100,100,100,150" Visibility="{Binding IsLoaderPageView}" />
我可以在My Pageview.xaml.cs代码上访问此BookViewVM属性,如下所示: ETBApp.MainVM.BookVM.IsLoaderPageView
但我必须在页面上的Property binding中调用它。 请告诉我如何绑定它。
ViewModel就像BookViewVm和PageViewVm一样在同一个名称上。
答案 0 :(得分:1)
问题是您有多个DataContexts ,默认情况下 Binding 与当前元素的 DataContext 一起使用(如果已指定)和datacontext如果没有父母(等等)。
所以有2个简单的解决方案:
答案 1 :(得分:0)
只需正确设置DataContext。 例如在网格
中<Grid.DataContext>
<viewmodel:YourViewModel />
</Grid.DataContext>
现在你可以绑定它了
<ItemsControl ItemsSource="{Binding Model.ButtonsRaw1}">
我们从模型中绑定ItemsSource。
或者你有另一种方法从资源中做到这一点。这样的东西
<UserControl.Resources>
<Style TargetType="local:YourType">
<Setter Property="Text" Value="{Binding Path=DataContext.Model.Text, Mode=TwoWay,ElementName=YourGridName}"/>
</Style>
</UserControl.Resources>