You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF如何将Dictionary键值分别绑定到ListView的GridView列

解决方案

要把字典的键和值分别显示在ListView的GridView两列中,核心是利用WPF中Dictionary绑定后每个列表项为KeyValuePair<DateTime, decimal>类型,直接绑定它的Key和Value属性即可。

修改后的XAML代码

<ListView Grid.Row="0" Grid.Column="2" Width="155" Height="Auto" Margin="10" ItemsSource="{Binding MedialDictionary}">
    <ListView.View>
        <GridView>
            <!-- 绑定字典的Key(DateTime类型),可自定义日期显示格式 -->
            <GridViewColumn Header="EffectiveDate" 
                            DisplayMemberBinding="{Binding Key, StringFormat='yyyy/MM/dd HH:mm:ss'}"/>
            <!-- 绑定字典的Value(decimal类型) -->
            <GridViewColumn Header="Value" 
                            DisplayMemberBinding="{Binding Value}"/>
        </GridView>
    </ListView.View>
</ListView>

关键说明

  • 当ListView的ItemsSource绑定到Dictionary时,每个列表项的数据源是KeyValuePair<TKey, TValue>,因此可以直接通过{Binding Key}和{Binding Value}分别获取字典的键和值。
  • 针对DateTime类型的Key,通过StringFormat可以指定自定义显示格式,比如示例中的yyyy/MM/dd HH:mm:ss,你可以根据需求调整为仅显示日期(如yyyy/MM/dd)。
  • 如果后续需要动态增删字典中的键值对并让UI自动更新,由于Dictionary不实现INotifyCollectionChanged接口,你有两种选择:
    • 每次修改后重新赋值整个MedialDictionary(借助你已实现的SetProperty触发属性变更通知);
    • 改用实现了INotifyCollectionChanged的自定义ObservableDictionary类型。

内容的提问来源于stack exchange,提问作者HyperSquid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:01:34