0
私のアプリケーションで2つの整数アップダウンコントロールがあります。 1は時間間隔からの分を表し、もう1つは時間間隔からの秒を表す。私はそれらの値をタイムスパンに結びつけたい。私はこのためにコンバータを使用する必要があることを知っています。しかし、私はまた、両方の値を任意の変更イベントでコンバータに送る必要があります。ユーザーが分を変更すると、分と秒から新しいタイムパンを作成する必要があります。これらの値を両方ともコンバータに送る方法はありますか、それともコードの中でこれを行う必要がありますか?2つのコントロール値をコンバーターに送信
ここに2つのコントロールのXAMLがあります。ここで
<extToolKit:IntegerUpDown Minimum="0" Margin="1,3,0,4" x:Name="iupApproachMin">
<extToolKit:IntegerUpDown.Value>
<PriorityBinding FallbackValue="50">
<Binding Path="VehicleEntryTaskStandards.MaxEntryTimeRequirement" Converter="{StaticResource timeSpanConvertor}">
</Binding>
</PriorityBinding>
</extToolKit:IntegerUpDown.Value>
</extToolKit:IntegerUpDown>
<Label>min</Label>
<extToolKit:IntegerUpDown Minimum="0" Maximum="59" Margin="1,3,0,4" FormatString="00" Value="10"></extToolKit:IntegerUpDown>
<Label>sec</Label>
は、私はそれが配列またはリストを受け入れることができますコンバータコード
[ValueConversion(typeof(TimeSpan),typeof(int))]
public class TimespanConverter:IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int minutes = ((TimeSpan)value).Minutes;
return minutes;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
TimeSpan resultTimeSpan = new TimeSpan();
int minutes;
if (int.TryParse(value.ToString(), out minutes))
{
resultTimeSpan = new TimeSpan(0, minutes, 0);
return resultTimeSpan;
}
return DependencyProperty.UnsetValue;
}
}
です。もしそうなら、これはどのようにxamlで行うことができますか?
助けてください!
これは機能するはずです。私はこれを避け、純粋にデータバインドでこれを行うよりエレガントな方法を見つけることを望んでいた – joshwl2003
私はViewModelをUIの拡張と見なします。また、ViewModelの読み込み速度が速くて読みやすい場合にXamlで何かをしようとすると、多大な時間を費やすことが必ずしも価値があるとは限りません。 – benPearce