2017-08-16 10 views
1

非常に基本的なDataGridを使ってテストしましたが、すぐにこの問題に遭遇しましたが、チェックボックスをクリックすると最初の2回は何もしません。それは、それがあったものをクリックするクリックを取るように見えます.3回クリックするだけで、それを実際に確認する前に1回クリックするだけです。WPF用Xceed DataGrid:変更するには3回クリックする必要があります

これは、私がbtw(https://xceed.com/xceed-datagrid-for-wpf/)を使用しているDataGridです。

GIF showing issue

XAML:

<UserControl.Resources> 
    <DataTemplate x:Key="ItemTemplate"> 
     <StackPanel> 
      <TextBlock Text="{Binding Property1}"/> 
      <CheckBox IsChecked="{Binding Property2}"/> 
     </StackPanel> 
    </DataTemplate> 
</UserControl.Resources> 
<Grid> 
    <xcdg:DataGridControl ItemTemplate="{DynamicResource ItemTemplate}" 
          ItemsSource="{Binding Collection, Source={StaticResource SampleDataSource1}}" 
          UpdateSourceTrigger="CellContentChanged" 
          Margin="10"> 
    </xcdg:DataGridControl> 
</Grid> 

"SampleDataSource1は" 単なる自動生成されますが、ここで、それはとにかくです:

<SampleDataSource1:SampleDataSource1 xmlns:SampleDataSource1="clr-namespace:Expression.Blend.SampleData.SampleDataSource1"> 
<SampleDataSource1:SampleDataSource1.Collection> 
    <SampleDataSource1:Item Property1="Cras aenean" Property2="True"/> 
    <SampleDataSource1:Item Property1="Class mauris aliquam" Property2="False"/> 
    <SampleDataSource1:Item Property1="Maecenas integer duis curae" Property2="True"/> 
    <SampleDataSource1:Item Property1="Praesent nullam nunc" Property2="False"/> 
    <SampleDataSource1:Item Property1="Nam quisque" Property2="True"/> 
    <SampleDataSource1:Item Property1="Sed accumsan" Property2="False"/> 
    <SampleDataSource1:Item Property1="Aptent vivamus aliquam aliquet" Property2="True"/> 
    <SampleDataSource1:Item Property1="Blandit donec dis" Property2="False"/> 
    <SampleDataSource1:Item Property1="Amet commodo" Property2="True"/> 
    <SampleDataSource1:Item Property1="Ante conubia" Property2="False"/> 
</SampleDataSource1:SampleDataSource1.Collection> 

答えて

0

を:「表示設定ウィンドウを」(それはそれを使用した後永遠に消えるように見える)。そのことを私はこの問題を修正するためにいくつかのXAMLを生成:

<xcdg:DataGridControl ItemsSource="{Binding Source={StaticResource cvsSongs}}" 
          NavigationBehavior="RowOrCell" 
          CellEditorDisplayConditions="RowIsBeingEdited, MouseOverCell, 
          MouseOverRow, RowIsCurrent, CellIsCurrent" 
          EditTriggers="BeginEditCommand, ClickOnCurrentCell, SingleClick, 
          CellIsCurrent, ActivationGesture, RowIsCurrent"/> 

あなたはそのウィンドウを作成する方法を知っている場合は、再度コメントを気軽に表示されます。

設定ウィンドウ情報:またXceed documentation

設定ウィンドウの問題を持ついくつかの他の人々。あなたのために働くかもしれません:xceed forums

0

あなたのデータグリッド上で(これを追加xaml):

DataGridCell.GotFocus="DataGrid_GotFocus" 

と背後にあるコードでは、この追加:あなたは幸運なら、あなたが言うボタンを使用してデザインウィンドウに大きなスプラッシュを参照してくださいよ、だから、

private void DataGrid_GotFocus(object sender, RoutedEventArgs e) 
{ 
    // Lookup for the source to be DataGridCell 
    if (e.OriginalSource.GetType() == typeof(DataGridCell)) 
    { 
     // Starts the Edit on the row; 
     DataGrid grd = (DataGrid)sender; 
     grd.BeginEdit(e); 
    } 
} 
+0

素早く答えてくれてありがとう違いはないので、関数や何かに到達していないと感じています。 IntelliSenseはそれをすべて認識します。エラーはありません。私はちょっとした騒ぎですが、何か不足しているかもしれませんか? –

+0

私は同じ問題を抱えていましたが、データグリッド内のコンボボックスを使用していましたが、これは解決しましたが、アプリオリが機能します:) – stuicidle

+0

DataGrid_GotFocusメソッドにブレークポイントを置いてみましたか? – stuicidle

関連する問題