1

アプリケーションに2 つDatePickerの があり、ユーザーが選択した日付 (開始日 - 終了日) に応じてレコードを選択する必要があります。下の図は、 my のデザインを示していDatepickerます。これらの日付ピッカーでの日付の選択に応じて、成功したプロセスの数をsucceddedtxtBoxに表示し、失敗したプロセスの数をfailedtxtBoxに表示したいと思います

ここに画像の説明を入力

XAML

      <Label>displays the succedded process</Label>
      <Border BorderThickness="1" BorderBrush="Gray">
      <TextBlock FontWeight="SemiBold" FontSize="12" x:Name="success_Txtbox" Width="50" VerticalAlignment="Stretch" TextAlignment="Right"/>
      </Border>
      <Label>displays the failed process</Label>
      <Border BorderBrush="Gray" BorderThickness="1">
      <TextBlock FontWeight="SemiBold" FontSize="12" x:Name="fail_Txtbox" Width="50" TextAlignment="Left"></TextBlock>
            </Border>

linq がクエリを実行するためのロジックを考えました。これは次のようになります。

   var query_success = ( from x in this.db.Processes
             where x.date = "from date" && x.date = "to date" && 
             (x.Type == "completed")
             select x).Count();
   success_Txtbox.Text = query_success.ToString();   

   var query_failed = ( from x in this.db.Processes
             where x.date = "from date" && x.date = "to date" && 
             (x.Type == "Failed")
             select x).Count();
   failed_Txtbox.Text = query_failed.ToString();

更新 - XAML

  <StackPanel Orientation="Horizontal">
            <Label>From</Label>
            <Border>
                <DatePicker x:Name="fromDP"></DatePicker>
            </Border>
            <Label>To</Label>
            <Border>
                <DatePicker x:Name="toDP"></DatePicker>
            </Border>
            <Button Content="Go !" Height="23" Name="Go_Btn" Width="75" Click="Go_Btn_Click" />
        </StackPanel>

更新された回答

 private void Go_Btn_Click(object sender, SelectionChangedEventArgs e)
    {
        var query_History = (this.db.Processes
                           .Where(x => x.Date >= fromDP.SelectedDate.Value && x.Date <= toDP.SelectedDate.Value));

        var query_Success = query_History.Count(p => p.Type == "Complete");
        var query_Failed = query_History.Count(p => p.Type == "Failed");

        success_Txtbox.Text = query_Success.ToString();
        fail_Txtbox.Text = query_Failed.ToString();
    }

上記の解決策を試しましたが、 txtbox の結果として 0 が表示されます。

4

2 に答える 2