繁体   English   中英

如何在C#代码后面的ListView中将字符串添加到WPF DataBinding?

[英]How to add string to WPF DataBinding in ListView in C# code behind?

我想用 C# 代码向我的 DataBinding 添加一个字符串,并将它们显示在 ListView 列中。 例如,我需要将“USD”字符串添加到 current_price 绑定并显示在 ListView 中。

我试图用 string.Format() 解决这个问题,但直到现在才成功。 我也尝试了 string.Format("{0:C}", "current_price"),但它也不起作用。

GridView gridView = new GridView();
listView_coins.View = gridView;
gridView.Columns.Add(new GridViewColumn
{
    Header = "#",
    DisplayMemberBinding = new Binding("market_cap_rank")
});
gridView.Columns.Add(new GridViewColumn
{
    Header = "Name",
    DisplayMemberBinding = new Binding("name")
});
gridView.Columns.Add(new GridViewColumn
{
    Header = "Ticker",
    DisplayMemberBinding = new Binding("symbol")
});
gridView.Columns.Add(new GridViewColumn
{
    Header = "Change (24h)",
    DisplayMemberBinding = new Binding("price_change_percentage_24h")
});
gridView.Columns.Add(new GridViewColumn
{
    Header = "Price",
    DisplayMemberBinding = new Binding(string.Format("{0} USD", "current_price"))
});

for (int i = 0; i < coinDatas.Count; i++)
{
    listView_coins.Items.Add(new CryptocurrencyDataModel
    {
        market_cap_rank = coinDatas[i].market_cap_rank,
        name = coinDatas[i].name,
        symbol = coinDatas[i].symbol.ToUpper(),
        price_change_percentage_24h = coinDatas[i].price_change_percentage_24h,
        current_price = coinDatas[i].current_price,
    });
}

我想在 ListView 列中得到类似 17.260 USD 的结果。

有必要不设置格式字符串的路径,而是将格式字符串的值设置为绑定

gridView.Columns.Add(new GridViewColumn
{
    Header = "Price",
    DisplayMemberBinding = new Binding(nameof(CryptocurrencyDataModel.current_price))
    {
        StringFormat="{0} USD"
    }
});

PS也可以在XAML中设置一次output的m.netary格式,通过改变UI元素的文化语言来调整所需货币的显示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM