モデルには、時間を秒単位で格納するプロパティが 1 つあります。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;
}
}
この問題を解決するより良い方法はありますか。これについて何か助けていただければ幸いです。
ありがとう :)