0

C# .NET 4.0マルチスレッドWPF アプリケーションを、時間BeginTime+EndTime範囲 (複数の範囲のペア) を動的に追加することで強化したいと考えています。
また、ユーザーが入力する倍数 (0 から N) の時間範囲は次のようになります。

  • 示されている、つまりユーザーに提示されている (私の考えでは、1 つまたは 2 つの互いに依存するリストボックスについて考えています)
  • CRUD-ed (作成-読み取り-更新-削除)

私は 3D パーティTimePickerのコマーシャル やを調べてDataTimePicker、独自のカスタム コントロールとユーザー コントロールを作成し、コントロールを実装TimePickerしましDateTimePickerた... しかし、それをより適切に進める方法を決定することはできませんでした。

それには何を使用するのが良いでしょうか-aまたはcustom controlauser controlと、どの構成/組み合わせ(ListBox、ListViewなどの別のコントロールの内部)? 基礎となるコレクション、モデルは?

実装方法についてアドバイスをいただければ幸いです

更新:
これが理解に役立つ場合...
証券取引所で取引されているWPFアプリケーションがありますが、ユーザーはリアルタイムとエミュレーションのためにカスタマイズ可能な複数の期間を選択できるはずです(売買の注文が表示されますただし、証券取引所には送られません)取引。さまざまなアルゴリズムがさまざまな期間に使用されているため、これはもう少し複雑ですが、問題は、ユーザーが構成可能な期間を入力できるようにしたいということです。

これは、一定期間、ユーザーの操作なしでハードコーディングによって行われるようになりました。

4

1 に答える 1

2

Extended WPF Toolkit™ のDateTimePickerおよび/またはを使用できます: http://wpftoolkit.codeplex.com/DateTimeUpDown

また、時間範囲については、Jani Giannoudis による Time Period Library for .NET を使用します: http://www.codeproject.com/Articles/168662/Time-Period-Library-for-NET

編集:

ListBoxUI の配置には、バインドされた を使用できますObservableCollection<TimePeriod>

<ListBox Name="listBox">
    <ListBox.ItemTemplate >
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <xctk:DateTimePicker Value="{Binding Start}" Format="ShortTime" />
                <xctk:DateTimePicker Value="{Binding End}" Format="ShortTime" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

public class TimePeriod
{
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
}

void Window_Loaded(object sender, RoutedEventArgs e)
{
    ObservableCollection<TimePeriod> collection = new ObservableCollection<TimePeriod>();
    collection.Add(new TimePeriod {Start = DateTime.Now - TimeSpan.FromHours(5), End = DateTime.Now});
    collection.Add(new TimePeriod {Start = DateTime.Now, End = DateTime.Now + TimeSpan.FromHours(5)});
    listBox.ItemsSource = collection;
}
于 2013-03-26T09:46:52.110 に答える