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

如何在C#后台代码中为WPF ListView的数据绑定添加字符串?

解决WPF ListView绑定添加单位字符串的问题

你的问题出在错误地将格式化字符串直接传入Binding的构造函数——Binding的第一个参数是要绑定的属性名(比如"current_price"),而不是格式化后的内容。以下是几种可行的解决方法:

方法1:使用Binding的StringFormat属性(推荐)

这是最直接的方式,无需修改模型,直接在绑定上设置格式化规则:

gridView.Columns.Add(new GridViewColumn
{
    Header = "Price",
    DisplayMemberBinding = new Binding("current_price")
    {
        // {0:N3} 表示保留3位小数,可根据需求调整为 {0:C} 货币格式或其他格式
        StringFormat = "{0:N3} USD"
    }
});

绑定后,current_price的值会自动格式化为类似17.260 USD的样式。

方法2:在模型中添加计算属性

如果需要复用格式化逻辑,可以在CryptocurrencyDataModel中新增一个只读的计算属性:

public class CryptocurrencyDataModel
{
    // 原有属性保持不变
    public int market_cap_rank { get; set; }
    public string name { get; set; }
    public string symbol { get; set; }
    public double price_change_percentage_24h { get; set; }
    public decimal current_price { get; set; }

    // 新增格式化后的价格属性
    public string FormattedPrice => $"{current_price:N3} USD";
}

然后绑定这个新属性:

gridView.Columns.Add(new GridViewColumn
{
    Header = "Price",
    DisplayMemberBinding = new Binding("FormattedPrice")
});

方法3:自定义IValueConverter(适合复杂场景)

如果需要更灵活的格式化逻辑(比如根据条件切换单位),可以实现IValueConverter:

public class PriceConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value is decimal price)
        {
            return $"{price:N3} USD";
        }
        return string.Empty;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

在后台代码中创建转换器实例并绑定:

var priceConverter = new PriceConverter();
gridView.Columns.Add(new GridViewColumn
{
    Header = "Price",
    DisplayMemberBinding = new Binding("current_price")
    {
        Converter = priceConverter
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:41:02