2012-01-13 29 views
3

。問題は、チェックボックスのチェックが直感的ではないことです。ユーザーがチェックボックスをクリックするには、まずチェックボックスのセルをクリックし、もう一度クリックしてアクティブにしてから、もう一度クリックしてチェックボックスをオンにする必要があります。 3回のクリックでチェックボックスをチェックします。Telerik RadGridViewでチェックボックスのセルのクリック動作が直感的ではなく、必要となる複数のクリック

これをシームレスにするためのより優れた方法がありますか?ユーザーがチェックボックスをクリックし、行/セルが既に選択されているかどうかに関係なく、チェックボックスをすぐに確認できるようにします。ユーザーがワンクリックでチェックできるようにしたい。

インフラジスティックスコントロールは、この数年前に可能でした。

Telerik RadGridView for Silverlightでより直感的なチェックボックスの動作を取得する方法を教えてください。

+0

... – user1060500

+0

私はこれを行います受け入れられる答えがあるとき... – user1060500

+0

個人的に、私は人を助けることを目指しています報酬または認識のそれはいつも私のために働いています。 – user1060500

答えて

5

私は最近あなたと同じ問題を抱えています。私はそれを修正するためにやったことは、列のCellTemplateにチェックボックスを入れていた:私は列にプロパティIsReadOnly="True"を追加しました

<telerik:GridViewDataColumn Header="Checkbox Column" IsReadOnly="True"> 
     <telerik:GridViewDataColumn.CellTemplate> 
      <DataTemplate> 
       <CheckBox IsChecked="{Binding Path=BooleanProperty, Mode=TwoWay}" /> 
      </DataTemplate> 
     </telerik:GridViewDataColumn.CellTemplate> 
    </telerik:GridViewDataColumn> 

注意。これは列を読み取り専用にしません。チェックボックスをクリックしてブール値プロパティを設定することができます。このプロパティの機能は、列内のセルがクリックされたときにCellEditTemplateを使用しないようにすることです。

通常、RadGridViewカラムは、表示用にCellTemplate、セルが編集モードになるときにCellEditTemplateを使用します。ただし、CellTemplateはこれらのブール値のプロパティの値を完全に変更できるので、ここではCellEditTemplateを使用する必要はありません。

+0

美しく働いた。ありがとう! – user1060500

0

telerik documentation siteは今受け入れ答えに記載されたアプローチにはいくつかの選択肢があります:

PROBLEM

あなたのGridViewにGridViewCheckBox列を持っている場合は、 クリックする必要が三回、デフォルトで チェックボックスの値を変更するには、最初の2回のクリックで編集モードになり、最後に の値が変更されます。

次の解決策では、チェックボックス列の値を変更するために必要なクリック数を制御するオプションが表示されます。

SOLUTION

最初のアプローチだけで、単一の クリックで編集モードに入ります GridViewCheckBoxColumn細胞のEditTriggers = "CellClick" プロパティを設定することにより

2回クリック液

。チェックボックスを の値に変更するにはもう一度クリックが必要です。

1回のクリックEditTriggers = "CellClick" プロパティに加え、ソリューション

は、あなたがGridViewCheckBox列の AutoSelectOnEdit = "True" にプロパティを設定することができます。この プロパティは、 セルが編集モードに入るとすぐにチェックボックスのチェック状態を変更し、ワンクリックで値を変更します。 GridViewに焦点を当てる必要があることに注意してください。

列が を自動生成しているとき、これは、XAMLまたは背後にあるコードで行うことができます。残念だ

XAML

<telerik:GridViewCheckBoxColumn Name="CheckBoxColumn" 
      EditTriggers="CellClick" 
      AutoSelectOnEdit="True" 
      DataMemberBinding="{Binding IsChampion}" /> 

C#

private void gridView_AutoGeneratingColumn(object sender, GridViewAutoGeneratingColumnEventArgs e) 
{ 
    var dataColumn = e.Column as GridViewDataColumn; 

    if (dataColumn != null) 
    { 
     if (dataColumn.UniqueName.ToString() == "IsChampion") 
     { 
      // create GridViewCheckBoxColumn 
      GridViewCheckBoxColumn newColumn = new GridViewCheckBoxColumn(); 
      newColumn.DataMemberBinding = dataColumn.DataMemberBinding; 
      newColumn.Header = dataColumn.Header; 
      newColumn.UniqueName = dataColumn.UniqueName; 
      newColumn.EditTriggers = Telerik.Windows.Controls.GridView.GridViewEditTriggers.CellClick; 
      newColumn.AutoSelectOnEdit = true; 
      e.Column = newColumn; 
     } 
    } 
} 
関連する問題