下拉列表中显示了索引和值,但组合框中只显示了值,下拉列表关闭后如何显示索引?
<ComboBox ItemsSource="{Binding DoubleList}" AlternationCount="{x:Static system:Int32.MaxValue}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding (ItemsControl.AlternationIndex), Mode=OneWay, RelativeSource={RelativeSource AncestorType=ComboBoxItem}, StringFormat={}{0} :"/>
<Run Text="{Binding ., StringFormat={}{0:F4}}"/>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
1条答案
按热度按时间qyuhtwio1#
当
ComboBox
关闭时,可视树中不存在ComboBoxItem
,因此当前绑定到(不存在的)父级ComboBoxItem
的ItemsControl.AlternationIndex
attached属性的解决方案将不起作用。您应该将
DoubleList
的类型从IEnumerable<double>
更改为IEnumerable<T>
,其中T
是一个视图模型,具有存储项索引的属性:然后,您必须以某种方式设置它,例如使用视图中的事件处理程序:
XAML文件::
这是MVVM的一个简单例子,视图通过编程方式设置视图模型的属性就像通过XAML标记中的绑定一样简单(在这个特定的例子中是不可能的)。