更新我的视图模型时,为什么我的用户控件不能更新?

时间:2011-12-14 12:49:04

标签: wpf events button mvvm user-controls

我有一个标签项目,我当前正在将用户控件加载为数据模板中的项目。我有两个日期选择器和一个按钮。单击此按钮,我需要显示一个堆栈面板,然后加载其他控件。我的问题是,虽然点击事件已触发并且新数据在新对象/集合中可用,但在视图模型中将属性分配给属性时,不会使用数据更新控件。此外,我无法更改面板的可见性。 这是代码:

用户控件是tabitem的数据模板,并且tabcontrol itemsource绑定到集合。因为当我试图在我的视图模型中直接绑定控件时,我得到了绑定表达式错误,我所做的是在模型类构造函数中创建相同的属性,并且我获得/设置viewmodel属性的值。目前,如果我绑定模型类中定义的属性,编译器将显示无绑定错误。

<UserContrl>
  <StackPanel Grid.Row = "0">
    <Button Grid.Column="4" HorizontalAlignment="Left" Content="Generate Graph"
            Width="140" Command="{Binding GenGraph}" />
  </StackPanel>
  <StackPanel Grid.Row = "1" Visibility={Binding ShowReport">
    ......
  </StackPanel>
</UserControl>

3 个答案:

答案 0 :(得分:1)

这是剪切和粘贴吗?因为你在绑定中错过了结束“}”

答案 1 :(得分:0)

它们是实现iNotifyPropertyChanged的公共属性吗?

答案 2 :(得分:0)

验证viewmodel中的ShowReport属性是否为Visibility类型(非布尔值)
您在XAML中绑定的所有属性必须在ViewModel类中可用,如果不是,编译器将不会显示任何错误,在运行时也不会收到任何错误,因为这样,它们将无法工作。
你能为其他问题显示更多的XAML /代码(stackpanel里面的控件)吗? 我对视图XAML和viewmodel代码

感兴趣