2011-12-20 9 views
2
private void OnChecked(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     LAB_TEST t = new LAB_TEST(); 
     CheckBox chk = (CheckBox)e.OriginalSource; 
     if (e.OriginalSource is CheckBox) 
     { 
      int OID = Convert.ToInt32(((CheckBox)chk).Tag); 
      t = eb.TestGetByOID(OID); 
      bool has = advisedTests.Any(test => test.OID == OID); 
      if (!has) 
      { 
       if (txtGrossAmount.Text != string.Empty) 
       { 
        decimal amount = Convert.ToDecimal(txtGrossAmount.Text); 
        amount += Convert.ToDecimal(t.PRICE); 
        txtGrossAmount.Text = amount.ToString(); 
       } 
       else 
       { 
        txtGrossAmount.Text = t.PRICE.ToString(); 
       } 
       advisedTests.Add(t); 
      } 
     } 
    } 
    catch (Exception ex) 
    { 

    } 
} 

をチェックして、DataGrid内のチェックを外しチェックボックステキストボックスとそれをやっているが、マウススクロール上下スクロールチェックボックスのチェックボックスをオフに自動的に今すぐ選択した項目の合計価格は、より多くの選択されたチェックボックスは、この問題。何か案が???? おかげマウスのスクロールは、それが中に合計を追加する必要があります私はDataGrid内のチェックボックスをバインドしました。この問題に直面していますし、私たちは、チェックボックスをクリックしたとき、私はいくつかの簡単な数学の計算を作ってるんだ

Issue Preview

+2

問題を説明するコード例を示し、説明のシナリオと問題を明確にすることを検討してください。 –

+0

私は同意する、あなたの問題は明確に記載されていません。 – Josh

答えて

0

私はSilverlightで同じ問題を抱えていました。スクロールすると、DataGridはRowLoadingイベントを発生させ、CheckBoxを再初期化します。私はそれを解決する唯一の方法を見つけた、組み込みの垂直スクロールバーDataGridを使用せず、DataGridの高さをautoに設定してScrollViewerに配置してください。

<ScrollViewer VerticalScrollBarVisibility="Visible"> 
    <DataGrid Height="Auto" /> 
</ScrollViewer> 
1

は、私は次のシナリオで、正確に同じ問題を抱えていた:あなたはデータグリッドを持って

  • 、各行は
  • チェックボックスが自分のチェック/チェックなしのイベントが設定されているチェックボックスが含まれています。if選択が複数の場合、すべてのチェックボックスがトグルされます
  • 複数行選択
  • チェックボックスをオンにすると、選択全体がチェックされます
  • seleted行のチェックボックスがヤツェクによって与えられた解決策は動作しますが、コンテンツがあるUI

から、すぐに彼らが消えるよう/未チェックチェックする必要があり、選択した行を保持し、かつ

  • それらを非表示にするスクロールマウスホイールでもうスクロールできない場合、マウスカーソルはスクロールバー上になければなりません。私のプロジェクトで動作するようです何

    は、コンテンツがマウスでまだスクロール可能で、それはデータグリッドをスクロールではないと告げると、DataGridのそれは非常に奇妙だ

    ScrollViewer.CanContentScroll="False" 
    

    にこのプロパティを追加することですが、チェックボックスのステータスを切り替える問題はもう発生しません。

  • +0

    私は数年後に再びこの問題に直面しましたが、実際には、正しい答えは次の記事のthinco(IsVirtualizing on False)によって与えられます! – MrPingouin

    0

    グリッドにVirtualizingStackPanel.IsVirtualizing="False"を設定する必要があります。

    関連する問題

     関連する問題