gpt4 book ai didi

c# - WPF StringFormat 格式化字符串值

转载 作者:太空宇宙 更新时间:2023-11-03 11:02:24 24 4
gpt4 key购买 nike

是否可以使用 StringFormat 格式化字符串...

例如..我的模型:

 public class MyModel
{
public string Code { get; set; }
}

代码的可能值为:“00000101001”、“00000201001”等...

绑定(bind)时,我想显示:对于 '00000101001' -> '000001-01'(忽略最后 3 个字符)对于 '00000201001' -> '000002-01'(忽略最后 3 个字符)

如果可以使用 stringformat 来实现这一点,最好不要自己实现。

最佳答案

你的问题是关于 BINDING WPF 中的字符串(不改变字符串的内部内容),解决这个问题的首选策略之一是使用转换器,这是一个例子你正在寻找(只显示前 10 个字符)...

public class CodeConverter : MarkupExtension, IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
try
{
string result = value.ToString();
if (result.Length > 10)
{
// code in your exact requirements here...
return result.Substring(0, 10);
}
return result;
}
catch{}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return null;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}

在您的 Xaml 中,只需在您的绑定(bind)中指定此类...

{Binding Code, Converter={StaticResource CodeConverter}

一切顺利!

关于c# - WPF StringFormat 格式化字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17216708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com