ItemsSource
ListView - это коллекция , элементы которой появятся в списке.Поэтому задумайтесь на минуту о том, что вы просите сделать ListView:
- В качестве исходной коллекции используйте что-то, что не является коллекцией, но содержит их
- Для каждогострока в списке, отображать элемент из одной коллекции и элемент из другой коллекции
Обратите внимание на этот второй пункт: каждая строка должна отображать некоторый элемент из коллекции событий и некоторый элемент изКоллекция описаний.
Какой предмет выбрать из каждого?Какая связь между предметами в двух коллекциях?
кажется , что вам действительно нужно это коллекция объектов, которая содержит и Событие иописание.Затем вы можете привязать эту коллекцию для отображения элементов обеих сущностей.Грубо говоря, что-то вроде этого:
public class EffectView : INotifyPropertyChanged
{
ObservableCollection<EffectsAndDescriptions> effects;
public ObservableCollection<EffectAndDescriptions> Effects
{
get { return this.effects; }
set
{
this.effects = value;
this.RaisePropertyChanged ( "EffectsAndDescriptions" );
}
}
}
internal class EffectsAndDescriptions
{
public Effect Effect { get; set; }
public Description Description { get; set; }
}
Теперь вы можете привязаться к коллекции EffectsAndDescription (обратите внимание, что предполагается, что DataContext родительского элемента ListView равен EffectView
)
<ListView ItemsSource="{Binding EffectsAndDescriptions}">
<ListView.View>
<GridView>
<GridViewColumn Width="Auto"
DisplayMemberBinding="{Binding Effect.Name}"
Header="Name" />
<GridViewColumn Width="Auto"
DisplayMemberBinding="{Binding Effect.Opacity}"
Header="Opacity" />
<GridViewColumn Width="Auto"
DisplayMemberBinding="{Binding Description.Usage}"
Header="Description" />
</GridView>
</ListView.View>
</ListView>