【发布时间】:2015-12-06 09:36:49
【问题描述】:
我有一个嵌套在 ListBox 中的 ListBox。
XAML
<ListBox ItemsSource="{Binding Scenes}">
<TextBox Text="{Binding Path=SceneNumber}"/>
<ListBox ItemsSource="{Binding EquipmentPerScene}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock>
<Run Text="{Binding Path=Item}"/>
</TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ListBox>
我有两个系列。一个“场景”包含所有场景。我还有另一个收藏,其中包含设备。现在我想将设备集合与场景配对,以便显示每个场景的设备。我该怎么做?
型号
public class Scene
{
public Scene(string SceneNumber, string SlugLine)
}
public class Gear
{
public Equipment(string SceneNumber, string Item)
}
视图模型
public ObservableCollection<Scene> Scenes { get; set; }
public ObservableCollection<Gear> AllEquipment { get; set; }
我试过了,但这似乎不起作用。我不知道过滤器参数。 或者这是完全错误的方法?
private ListCollectionView _equipmentPerScene;
public ListCollectionView EquipmentPerScene
{
get
{
if (_equipmentPerScene == null) //important for loading the app
{
_equipmentPerScene = new ListCollectionView(AllEquipment);
_equipmentPerScene.IsLiveFiltering = true;
_equipmentPerScene.Filter = o =>
{
var gear = o as Gear;
return gear!= null && gear.SceneNumber == ??????????;
};
}
return _equipmentPerScene;
}
set
{
_equipmentPerScene = value; RaisePropertyChanged();
}
}
我怎样才能让 EquipmentPerScene 显示该特定 listboxItem(场景)的正确设备。
【问题讨论】:
-
为什么不使用分组来代替?
标签: c# wpf mvvm binding listbox