我仍然是MVVM
(和C#)的新手,所以如果我的问题不清楚,请告诉我,我会更新/澄清。
我的ListView
中有一个xaml
,代码如下:
<ListView.Resources>
<local:IndexConverter x:Key="IndexConverter" />
<DataTemplate x:Key="OrdinalColumnDataTemplate">
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListViewItem},
Converter={StaticResource ResourceKey=IndexConverter}}" HorizontalAlignment="Right" />
</DataTemplate>
</ListView.Resources>
<ListView.View>
<GridView x:Name="gridView3">
<GridViewColumn Header="#" CellTemplate="{StaticResource ResourceKey=OrdinalColumnDataTemplate}" />
<GridViewColumn DisplayMemberBinding="{Binding Name, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}" Header="Name" />
<GridViewColumn DisplayMemberBinding="{Binding License, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}" Header="License" />
</GridView>
</ListView.View>
它按预期工作,它填充了每个元素的Name
和License
属性。
现在,我想添加一个ComboBox
,并使用Names
中显示的相同元素的唯一ListView
填充它。
问题1 :我测试了以下代码,但它不起作用,xml应该如何?
<ComboBox Name="filterUserComboBox" ItemsSource="{Binding Path=licenseListView, ElementName=Name}"></ComboBox>
问题2 :如果上述方法正常,如何将“全部”(或单个空元素)元素添加到ComboBox?
答案 0 :(得分:0)
好的,我自己设法解决了这两个问题。希望它可能在将来帮助人们。
答案1:原来xml只是一点点关闭。
<ComboBox Name="filterUserComboBox" ItemsSource="{Binding Path=ResourceList}" DisplayMemberPath="Name"></ComboBox>
答案2:我研究了很长一段时间,解决方案是实际更改ComboBox中填充的MVVM,因此源实际上应该包含一个空的/ all选项以显示在ComboBox。