2009-08-05 138 views
0

这里的情况:WPF绑定问题

使用WPF

我必须设置窗口的DataContext的对象。此窗口上的列表视图将显示与DataContext(用户)中的属性相对应的用户列表。

每当选择一个用户时,我将CurrentDisplayedUser设置为该用户所选对象。

我有另一个列表框,应该显示此用户的警报。这可以通过User.Alerts访问。

我的问题是,无论何时更新CurrentDisplayedUser属性,绑定到CurrentDisplayedUser.Alerts的列表视图都不会更新。

在此先感谢!我希望我提供了足够的信息。

回答

1

您是否尝试过使用元素绑定直接连接两个列表,而不是依赖中介“CurrentDisplayedUser”属性?

<Window ...> 
    <StackPanel> 
     <ListView x:Name="userList" ItemsSource="{Binding Users}"> 
      ... 
     </ListView> 

     <!-- display selected user here --> 
     <ContentControl Content="{Binding SelectedItem,ElementName=userList /> 

     <ListView ItemsSource="{Binding SelectedItem.Alerts,ElementName=userList> 
      ... 
     </ListView> 
    </StackPanel> 
</Window> 
+0

这个作品谢谢!然而,我的意图是让警报列表视图基于userList上的双击事件而改变。 – Joe 2009-08-05 01:27:14

+0

然后可能需要看一些代码。你的“CurrentSelectedUser”属性是一个依赖属性,还是你的底层对象实现了INotifyPropertyChanged? – 2009-08-05 01:57:32

0

您是否将ObservableCollection用于您的用户列表?

+0

如果他修改用户的列表中,他没有提到 - 只是他选择从它的用户。 ObservableCollection在这种情况下不起作用。 – 2009-08-05 01:23:43

+0

谢谢jle。我现在将我的用户集合更新为从ObservableCollection继承。当我添加添加用户功能时,这很好。 – Joe 2009-08-05 01:33:52