SelectedIndex总是保持-1,而使用多个列在一个带标题的组合框
本文关键字:一个 组合 标题 SelectedIndex | 更新日期: 2023-09-27 18:13:35
我有一个带有标题的多列组合框。我已经用这个答案让它工作了。
下面是我使用的XAML:<CollectionViewSource x:Key="GroupNamesWithCorrespondingEffectsCollection" Source="{Binding GroupNamesWithCorrespondingEffects}" />
<CompositeCollection x:Key="Items">
<ComboBoxItem IsEnabled="False" Background="#FF2A2A2A" Foreground="White">
<Grid TextElement.FontWeight="Bold" >
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="A" />
<ColumnDefinition Width="50" />
<ColumnDefinition SharedSizeGroup="B" />
</Grid.ColumnDefinitions>
<Grid.Children>
<TextBlock Grid.Column="0" Text="Group Name" />
<TextBlock Grid.Column="2" Text="Effect" />
</Grid.Children>
</Grid>
</ComboBoxItem>
<CollectionContainer Collection="{Binding Source={StaticResource GroupNamesWithCorrespondingEffectsCollection}}" />
</CompositeCollection>
<DataTemplate DataType="{x:Type helpers:GroupNameWithCorrespondingEffect}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="A" />
<ColumnDefinition Width="50" />
<ColumnDefinition SharedSizeGroup="B" />
</Grid.ColumnDefinitions>
<Grid.Children>
<TextBlock Grid.Column="0" Text="{Binding GroupName}" />
<TextBlock Grid.Column="2" Text="{Binding CorrespondingEffect}" />
</Grid.Children>
</Grid>
</DataTemplate>
<ComboBox ItemsSource="{DynamicResource Items}"
SelectedValue="{Binding GroupNameWithCorrespondingEffect}"
SelectedValuePath="GroupID"
DisplayMemberPath="GroupName" />
注意:
c#代码没有发布,因为我认为没有必要在这里发布。如果有人想看一下c#代码,请告诉我&我会贴出来的。问题:
我想检查CodeBehind文件中的ComboBox的selecteindex。但是我注意到SelectedIndex总是保持-1。有什么问题吗?我该如何克服呢?
您已将 SelectedValue
绑定到 GroupNameWithCorrespondingEffect
,我怀疑这是GroupNameWithCorrespondingEffect类型,同时将 SelectedValuePath
绑定到 GroupID
,该是int或uint。
SelectedValue和SelectedValuePath应该总是相同的类型。在你的例子中,你可以删除SelectedValuePath并直接绑定SelectedValue。
<ComboBox ItemsSource="{DynamicResource Items}"
SelectedValue="{Binding GroupNameWithCorrespondingEffect}"
DisplayMemberPath="GroupName" />