지난 한 시간 동안 간단한 문제가되는 해결책을 찾았습니다. Xceed 커뮤니티에서 한 번의 클릭으로 편집 가능한 바운드를 만드는 방법 DataGridControl
. Xceed DataGridControl의 한 번 클릭으로 편집 가능한 바운드 CheckBox
CheckBox
을 클릭하고 뷰 모델의
IsSelected
속성이 따라 변경이 수
CheckBox
열을합니다.
다음은 내가 시도한 최신 순열입니다. 이 코드는 모델에서 값을 읽지 만 CheckBox
을 클릭하면 어떤 이유로 든 IsSelected
설정기를 호출하지 않습니다.
<xcdg:DataGridControl x:Name="DictionariesDataGridControl" ItemsSource="{Binding Mode=OneWay, Source={StaticResource DictionariesViewSource}}" AutoCreateColumns="False" AutoRemoveColumnsAndDetailConfigurations="False" SelectionMode="Extended" NavigationBehavior="RowOnly">
<xcdg:DataGridControl.View>
<xcdg:TableView UseDefaultHeadersFooters="False" ShowRowSelectorPane="False" VerticalGridLineThickness="0">
<xcdg:TableView.FixedHeaders>
<DataTemplate>
<xcdg:ColumnManagerRow BorderThickness="0"/>
</DataTemplate>
</xcdg:TableView.FixedHeaders>
</xcdg:TableView>
</xcdg:DataGridControl.View>
<xcdg:DataGridControl.Columns>
<xcdg:Column FieldName="IsSelected" MinWidth="20" MaxWidth="20" CellEditorDisplayConditions="RowIsCurrent">
<xcdg:Column.CellContentTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding ., Mode=OneWay}" IsHitTestVisible="False"/>
</DataTemplate>
</xcdg:Column.CellContentTemplate>
<xcdg:Column.CellEditor>
<xcdg:CellEditor>
<xcdg:CellEditor.EditTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding ., Mode=TwoWay}"/>
</DataTemplate>
</xcdg:CellEditor.EditTemplate>
</xcdg:CellEditor>
</xcdg:Column.CellEditor>
</xcdg:Column>
</xcdg:DataGridControl.Columns>
내가 필요 정확히 수행하는,이 노력하고있어 1
편집 : 어떤 이유로 CheckBox
가와 스타일되며, 제외
<xcdg:Column FieldName="IsSelected" MinWidth="20" MaxWidth="20" CellEditorDisplayConditions="Always"/>
파란색 배경!
는 I 색상 등 #FF0000FF
으로 SolidColorBrush
로 정의 Background
속성이 비주얼 트리의 요소 선택한 :
EDIT 2
Xceed가 th 렌더링에 사용하는 DataGridCheckBox
클래스의 디 컴파일
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
this.ChildCheckBox.Background = (Brush) new SolidColorBrush(Colors.Blue);
}
Xceed에 의해 기괴한 결정 임의로 파란색에 배경 색상을 설정하려면 무엇 : 전자 CheckBox
와이 재정을 발견했다.
EDIT 3
사용 @JBrooks '대답은, 나는 다음과 같은 시도 :
내가 확인란을 선택하면 불행하게도, 어떤 이유로IsSelected
재산에 세터가 호출되지 않습니다 <xcdg:Column FieldName="IsSelected" MinWidth="20" MaxWidth="20" CellEditorDisplayConditions="Always">
<xcdg:Column.CellEditor>
<xcdg:CellEditor>
<xcdg:CellEditor.EditTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding ., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</xcdg:CellEditor.EditTemplate>
</xcdg:CellEditor>
</xcdg:Column.CellEditor>
</xcdg:Column>
. getter는 여러 번 호출되지만 초기 바인딩에서는 CheckBox
이 올바르게 표시됩니다.
이는 분명히 'DataGridCheckBox'의 알려진 버그입니다. 코드 검토를 위해 너무 많이 ... http : //wpftoolkit.cod eplex.com/workitem/20210 – NathanAldenSr
"this"는 파란색 배경의 어리 석음을 의미합니다. – NathanAldenSr
3 가지 질문 : 출력 창에 아무 것도 없나요? CurrentCellChanged가 캡처 한 이벤트와 비슷한 것을 가지고 있습니까? 확인란이 포커스를 잃었을 때 setter가 설정됩니까? – JBrooks