DataGridTextColumn
셀에 아이콘을 추가하여 TextBox
옆에 표시하고 싶습니다. 나는 이것을 수행하기 위해 DataGridTemplateColumn
을 사용할 수 있지만, 나는 DataGridTextColumn
의 모든 이점을 잃어버린다. 예를 들어 DataGridTextColumn
은 타이핑을 시작하자마자 편집 모드로 들어가고 Esc 키를 누르면 원래의 값으로 복원해야한다는 것을 알고 있습니다.DataGridTextColumn에 아이콘과 같은 컨트롤을 추가하려면 어떻게해야합니까?
답변
DataGridTemplateColumn
은 전체 사용자 정의가 필요할 때 제공됩니다.CellTemplate
및CellEditingTemplate
을 입력하십시오. 예 :<DataGridTemplateColumn> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Name}"/> <Image Source="..."/> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBox Text="{Binding Name}"/> <Image Source="..."/> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn>
그리고 당신도 여기 Escape
핵심 기능을 얻을.
난 당신이 DataGridTemplateColumn
을 사용하지 않으려는 이유는 다음과 확실하지 않다, 그러나 당신은 또한 DataGridBoundColumn
및 최우선 GenerateElement
및 GenerateEditingElement
에서 파생 된 사용자 정의 클래스를 작성하는 옵션이 있습니다. 자동 생성 된 열을 사용하는 경우 이벤트를 처리하여 사용하려는 특정 열에 맞게 DataGridBoundColumn
사용자 정의를 만들면됩니다.
다시 한 번 생각해 봅시다. AnjumSKhan이 맞다고 생각하면 DataGridTemplateColumn
은 텍스트 상자 옆에 이미지를 보여 주기만하면 원하는만큼 적절해야합니다. 내가 이제까지 사용자 지정 DataGridBoundColumn
과 함께 갈 필요가 있었던 유일한 시간은 XAML 템플릿을 통해 쉽게 성취 할 수없는 특별한 동작이 필요할 때입니다. 그 상황은 거의없고 그 사이에 있습니다.
편집 : 사용자 정의 DataGridCell
템플릿을 사용할 때 당신이 그것을 클릭하면 셀이 편집 모드로 전환하지 않는 문제에 , 나는 실제로 유사한 문제에 직면했다. 이것은 나를 위해 일한 (에 넣어 당신의 DataGrid
의 자원) :
<Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"
BasedOn="{StaticResource {x:Type DataGridCell}}">
<EventSetter Event="Control.GotFocus" Handler="DataGridCell_GotFocus"/>
</Style>
다음 핸들러 DataGridCell_GotFocus
의 :
private void DataGridCell_GotFocus(object sender, RoutedEventArgs e)
{
this._MyDataGrid.BeginEdit();
}
감사합니다, Peter, DataGridBoundColumn에서 파생시켜 원하는 작업을 수행하고 DataGridTextColumn 소스 코드에서 많은 코드를 복사해야 할 수도 있습니다. AnjumSKhan에 대한 내 의견에서 말했듯이, DataGridTemplateColumn은 선택된 셀에 타이핑을 시작하여 TextBox 편집을 자동으로 시작하지 못하게합니다. 편집 모드로 전환하려면 셀을 두 번 클릭해야하며 원하는 것은 아닙니다. – redcurry
아, 알겠습니다. 나는 그것을 복제하려하지 않았지만 나는 비슷한 것을 직면했기 때문에 놀랄 일이 아니다. 내가 어떻게 처리했는지 위의 편집을 참조하십시오. 잘하면 그것은 많은 논리를 다시 발명해야하는 것보다 당신을 위해 일할 수 있기를 바랍니다. –
이것은 내가 원하는 바에 가깝지 만별로는 아니다. 실제로 셀을 클릭하면 편집 모드로 들어가기를 원하지 않습니다. 현재 셀에 타이핑을 시작할 때 편집 모드로 들어가기를 원합니다. 그런 다음 Esc 키를 누르면 입력 한 내용을 실행 취소하고 원래 텍스트를 복원합니다. 귀하의 솔루션은 나에게 유용 할 것입니다.하지만 감사합니다. – redcurry
- 1. Joomla 메뉴 항목에 아이콘과 자막을 추가하려면 어떻게해야합니까?
- 2. RichTextBox에 탭 컨트롤을 추가하려면 어떻게해야합니까?
- 3. createPartControl 이후에 컨트롤을 추가하려면 어떻게해야합니까?
- 4. Apollo 또는 Google 뮤직과 같은 영구 미디어 컨트롤을 추가하려면 어떻게해야합니까?
- 5. 동적 데이터 바인딩 사용자 컨트롤을 추가하려면 어떻게해야합니까?
- 6. UITextField 및 UITableViewCell과 같은 UIButton과 같은 컨트롤을 두 개 이상 추가하려면 어떻게해야합니까?
- 7. WPG의 DataGridTextColumn에 DatePicker를 추가하는 방법
- 8. 파이썬에서 differents 요소를 같은 배열에 추가하려면 어떻게해야합니까?
- 9. 파이썬에서 같은 변수를 여러 번 추가하려면 어떻게해야합니까?
- 10. 컬렉션을 초기화하고 같은 줄에 데이터를 추가하려면 어떻게해야합니까?
- 11. 코드 숨김에서 span을 찾고 사용자 정의 컨트롤을 추가하려면 어떻게해야합니까?
- 12. 아이콘과 같은 리소스를 어떻게 배치해야합니까?
- 13. Wordpress - 아이콘과 같은 줄에 get_search_form()
- 14. HTML5의 오디오 태그를 변경하여 맞춤 컨트롤을 추가하려면 어떻게해야합니까?
- 15. MVC의 ViewModel에 사용자 정의 웹 컨트롤을 추가하려면 어떻게해야합니까?
- 16. wpf를 사용하여 DataGrid의 DataGridTemplateColumn에 여러 컨트롤을 추가하려면 어떻게해야합니까?
- 17. iPad SplitView에서 날짜 선택기 컨트롤을 루트보기에 추가하려면 어떻게해야합니까?
- 18. DataGridTextColumn에 여백 추가
- 19. DataGridTextColumn에 데이터가 표시되지 않습니다.
- 20. UITextView에서 이미지를 추가하려면 어떻게해야합니까?
- 21. 요소에 키를 추가하려면 어떻게해야합니까?
- 22. 테두리를 추가하려면 어떻게해야합니까?
- 23. 그룹에 사용자를 추가하려면 어떻게해야합니까?
- 24. * args에 해시를 추가하려면 어떻게해야합니까?
- 25. xaml의 DatagridTextColumn에 전경 변환기 추가
- 26. 양식에 스타일을 추가하려면 어떻게해야합니까?
- 27. 다른 부모에 여러 번 같은 컨트롤을 추가
- 28. 같은 줄에 아이콘과 텍스트를 인쇄하는 법 java?
- 29. pyqt를 사용하여 폴더 아이콘과 같은 보관함 만들기?
- 30. GWT는 데스크톱 아이콘과 같은 것을 구현합니다.
감사합니다, AnjumSKhan,하지만 난 이미이 시도하고하지 않습니다 내가 원하는거야. 한 번 셀을 클릭하고 입력을 시작하여 TextBox를 바로 편집 할 수 있기를 원합니다 (DataGridTextColumn과 비슷 함). 또한 입력하는 동안 Esc 키를 누르면 원래 텍스트가 복원됩니다. DataGridTemplateColumn을 사용하면 먼저 셀을 두 번 클릭해야하며 Esc 키를 누르면 원본 텍스트가 복원되지 않습니다. – redcurry