2011-12-14 33 views
0

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

用户控件是tabitem的数据模板,tabcontrol项目源绑定到集合。因为当我试图在我的视图模型中直接绑定控件和属性时,我得到了绑定表达式错误,我所做的是在模型类构造函数中创建了相同的属性,并且我获取/设置了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> 
+2

您的ViewModel是否实现了`INotifyPropertyChanged`?如果WPF在属性更改时自动更新UI,那么该接口是必需的。也许你可以向我们展示你的ViewModel代码。 – Rachel 2011-12-14 13:53:14

回答

1

这是剪切和粘贴?因为你错过了绑定“}”的绑定...

0

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

0

确认您的视图模型的ShowReport属性的类型可见性(不是布尔)
,绑定到在XAML必须在ViewModel类是可用的所有属性,编译器不会显示任何错误,如果他们不是,在运行时你也不会因为这个问题而收到错误,他们就不会工作。
你可以为其他问题展示更多的XAML /代码(stackpanel内的控件)吗?
我会对视图感兴趣XAML和viewmodel代码

+0

它的类型可见性。 – sri 2011-12-14 15:30:10

相关问题