我一直得到一个"A‘绑定’只能设置在一个DependencyProperty的DependencyObject。“我的XAML文件中的错误和运行应用程序也不起作用。
我要把代码发出去,因为我已经盯着这个看了好几个小时了,没有分辨率.
MainWindow.xaml
<local:ToolBarButton ViewModel="{Binding SelectedScreen.BackButtonViewModel}"/>上面这一行让我在MainWindow.xaml上出错了。
SelectedScreen属性在我的MainWindowViewModel中定义。下面的代码。
MainWindowViewModel.cs
public class MainWindowViewModel : DependencyObject, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged = delegate { };
private ObservableCollection<ScreenViewModelBase> _screens;
public ObservableCollection<ScreenViewModelBase> Screens
{
get { return _screens; }
set
{
if (value != _screens)
{
_screens = value;
PropertyChanged(this, new PropertyChangedEventArgs(nameof(Screens)));
}
}
}
public static readonly DependencyProperty SelectedScreenProperty =
DependencyProperty.Register(nameof(SelectedScreen), typeof(ScreenViewModelBase), typeof(MainWindowViewModel));
public ScreenViewModelBase SelectedScreen
{
get { return (ScreenViewModelBase)GetValue(SelectedScreenProperty); }
set { SetValue(SelectedScreenProperty, value); }
}
public MainWindowViewModel()
{
Screens.Add(new HomeScreenViewModel());
SelectedScreen = Screens[0];
}
}如您所见,我的视图模型作为MainWindow类上的MainWindow,实际上是一个依赖属性。然而,我无法使它正常工作,而且我一直收到一个错误,它告诉我这不是一个依赖对象。
此外,下面是关联用户控件上的ViewModel属性的代码。
ToolBarButton.xaml.cs (用户控制)
public partial class ToolBarButton : UserControl//, INotifyPropertyChanged
{
public static DependencyProperty viewModelProperty = DependencyProperty.Register(nameof(ViewModel), typeof(ToolBarButtonViewModel), typeof(ToolBarButton));
public ToolBarButtonViewModel ViewModel
{
get
{
return (ToolBarButtonViewModel)GetValue(viewModelProperty);
}
set
{
SetValue(viewModelProperty, value);
}
}
}我遗漏了什么?
发布于 2017-05-30 20:55:35
我不知道这是怎么回事。我尝试了所有这些步骤,但我做了最后一次尝试,把它们都做在一起,这解决了问题。如果其他人在接受其他建议后,在这个问题上束手无策,那就试试这个。
https://stackoverflow.com/questions/44247921
复制相似问题