使用 mvvmcross 绑定(bind)实现以下内容的最佳方法是什么:
if (ViewModel.NumberOfUsers > 1)
set.Bind (NumberOfUsersLabel).To ("NumberOfUsers + ' Users'");
else
set.Bind (NumberOfUsersLabel).To ("NumberOfUsers + ' User'");
非常感谢您的帮助!
最佳答案
通常,Mvvm 开发人员在 ValueConverter
有关这方面的更多信息,请参阅 https://github.com/MvvmCross/MvvmCross/wiki/Value-Converters
这包括显示如何根据当前值更改字符串的“time ago”示例:
public class MyTimeAgoValueConverter : MvxValueConverter<DateTime, string>
{
protected override string Convert(DateTime value, Type targetType, object parameter, CultureInfo cultureInfo)
{
var timeAgo = DateTime.UtcNow - value;
if (timeAgo.TotalSeconds < 30)
{
return "just now";
}
if (timeAgo.TotalMinutes < 10)
{
return "a few minutes ago";
}
if (timeAgo.TotalMinutes < 60)
{
return "in the last hour";
}
if (timeAgo.TotalMinutes < 24*60)
{
return "in the last day";
}
return "previously";
}
}
关于c# - 使用 MVVMCross 的属性条件绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30114889/