0
我有一个属性Tours
:
Tours
是Tour
类- 每一个 “游” 的
ObservableCollection
已Parties
Partie
- 每个
Partie
具有ObservableCollection
Equipes
类Equipe
- 每个
- 每一个 “游” 的
的我有3个菜单:
- 首先是是键与属性
Tours
- 第二必须键与所述第一菜单的
SelectedItem
属性(因此具有Partie
类的ObservableCollection
) - 第三必须是键与所述第二菜单的
SelectedItem
属性。 (所以它有Equipes
类的ObservableCollection
)
眼下,这是工作代码:
<StackPanel>
<ListView Name="lvTours" ItemsSource="{Binding Tours}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Name}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ListView>
<ListView Name="lvParties" ItemsSource="{Binding ElementName=lvTours, Path=SelectedItem.Parties}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Name}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ListView>
<ListView Name="lvEquipes" ItemsSource="{Binding ElementName=lvParties, Path=SelectedItem.Equipes}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Name}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ListView>
</StackPanel>
然后我可以根据SelectedItem
更改上下文的看法菜单:
<StackPanel Grid.Column="1">
<local:StatistiquesTour DataContext="{Binding ElementName=lvTours, Path=SelectedItem}" />
<local:StatistiquesParties DataContext="{Binding ElementName=lvParties, Path=SelectedItem}" />
<local:StatistiquesEquipes DataContext="{Binding ElementName=lvEquipes, Path=SelectedItem}" />
</StackPanel>
我的问题是如果我的菜单变成Usercontrol
,我似乎无法在MenuUserControl
内的菜单和ListView
(即我命名为:lvMenu
)之间创建databinding
。我虽然这将是为做这样的事情非常简单:
<local:MenuUserControl x:Name="MenuTours" DataContext="{Binding Tours}" />
<local:MenuUserControl x:Name="MenuParties" DataContext="{Binding ElementName=MenuTours.lvMenu, Path=SelectedItem}" />
<local:MenuUserControl x:Name="MenuEquipes" DataContext="{Binding ElementName=MenuParties.lvMenu, Path=SelectedItem}" />
,然后选择上下文将到达同样的方式:
<local:StatistiquesTour DataContext="{Binding ElementName=MenuTours.lvMenu, Path=SelectedItem}" />
<local:StatistiquesParties DataContext="{Binding ElementName=MenuParties.lvMenu, Path=SelectedItem}" />
...
的lvMenu
在MenuUserControl
(该ListView
)有其ItemsSource="{Binding}"
到将它绑定到上下文。
有没有人有线索如何做到这一点?(对不起,我的英语)
您需要MVVM模式。让我看看 – Coding4Fun
我不确定,但也许[博客文章](http://blog.jerrynixon.com/2013/07/solved-two-way-binding-inside-user.html?m=1)可能成为解决方案。它通过'DependencyProperty'传递一个'object'。这似乎比我想的要难。 – maxeber