我的模型中有一个属性,它以秒为单位存储时间。在 UI 上,我必须通过带有 1、5、10、15、30 分钟和 1 小时选项的单选按钮以及组合框中带有分钟和小时选项的自定义值单选按钮来显示选项。
在选择自定义值时,文本框和组合框中的值以分钟和小时为选项,我在模型中设置了间隔。对于其余部分,我使用转换器及其参数来设置值。如下:
public class SamplingIntervalConverter : IValueConverter
{
static int[] secondsArray = new int[]{60,300,600,900,1800,3600};
object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int dataSeconds = 0;
int parameterSeconds = 0;
if (int.TryParse(value.ToString(), out dataSeconds))
{
if(int.TryParse(parameter.ToString(),out parameterSeconds))
{
if (dataSeconds == parameterSeconds)
{
return true;
}
}
else if (parameter.ToString().Equals("Custom") && !secondsArray.Contains(dataSeconds))
{
return true;
}
}
return false;
}
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((bool)value)
{
int parameterSeconds = 0;
if (int.TryParse(parameter.ToString(), out parameterSeconds))
{
return parameterSeconds;
}
}
return 0;
}
}
有没有更好的方法来解决这个问题。我真的很感激这方面的一些帮助。
谢谢 :)