Ваша фактическая привязка не будет работать, потому что EffectViewModel не имеет ключа и значения свойства.Я действительно не знаю, что должен отображать ваш список.если вам нужен список EffectViewModels, то Itemssource прав.если вы хотите, чтобы для каждого EffectViewModel отображались настройки.тогда вам нужен некоторый контроль элемента с Itemssource = {Настройки привязки}.этот элемент управления, конечно, будет нуждаться в шаблоне элемента с вашим ключом и значением.
У меня нет VS здесь, но для вашего GridViewColumn необходим тип CellTemplate.и этот шаблон должен состоять из элементов управления.потому что у вас есть 2 коллекции!этот код, вероятно, не верен, но должен привести вас в правильном направлении
<ListView Width="1000"
Height="600"
ItemsSource="{Binding EffectWindowViewModel.Effects}">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Settings}">
<GridViewColumn.CellTemplate>
<DataTemplatex:Key="myCell4Settings">
<ListView ItemsSource="{Binding.}">
<ListView.View>
<GridView>
<GridViewColumn Width="Auto"
DisplayMemberBinding="{Binding Key}"
Header="Name" />
<GridViewColumn Width="Auto"
DisplayMemberBinding="{Binding Value}"
Header="Value" />
</GridView>
</ListView.View>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</ListView>
</DataTemplate>
</GridView>
</ListView.View>
кстати, вы также можете использовать 2 независимых списка.один родительский комбинированный список или список (x: Name = parent) с itemssource = EffectWindowViewModel.Effects и второй ListView, такой как у вас, с привязкой itemssource:
ItemsSource="{Binding ElementName=parent, Path=SelectedItem.Settings}"