Silverlight에서 프로그래밍 방식으로 DataGrid 셀을 강조 표시하려면 어떻게합니까?Silverlight에서 Cell을 강조 표시하는 방법 DataGrid
0
A
답변
0
당신은 다음을 수행해야합니다 :
- 이 속성을 추가하여 데이터 항목 클래스에 (의이
IsSelectedInChart
이름을 보자). 이 속성은public
이어야하며 값이 변경 될 때마다INotifyPropertyChanged.PropertyChanged
이벤트를 발생시켜야합니다. lineseries_SelectionChanged
에서 선택한 지점에 해당하는 데이터 항목을 찾아야하고 을true
, 다른 사용자를false
으로 설정해야합니다.- 은
DataGrid
에 존재DataGridRow
의 모든 인스턴스Path=IsSelectedInChart
과의Background
속성에Binding
설정 및 사용자 정의를`이 있는지 확인 IValueConverter '.
컨버터는 다음과 같아야합니다
public class ValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
// TODO: be more careful with nulls and non-expected values
bool isSelected = (bool)value;
return isSelected ? new SolidColorBrush(Colors.Red) : DependencyProperty.UnsetValue;
}
}
마지막 단계는 가장 까다로운입니다. DataGridRow
Style
을 재정 의하여 구현할 수 있습니다. 하나의 접근법은 https://stackoverflow.com/a/4268159/795861에 표시되고 다른 하나는 https://stackoverflow.com/a/3542179/795861에 표시됩니다. 체크 아웃.
DataGrid
에 많은 행이있을 가능성이 있으므로이 모든 단계가 필요합니다. UI virtualization을 사용하기 때문에 DataGridRow
에 Background
속성을 간단히 설정할 수 없습니다. 단일 행 개체가 여러 데이터 항목을 표시하는 데 사용되기 때문입니다. 따라서 스크롤을 사용하여 작업하게하는 유일한 방법은 배경을 데이터 항목에 바인딩하는 것입니다. I 있지만,
<sdk:DataGrid>
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn x:Name="theColumnToHighlight">
<sdk:DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type sdk:DataGridCell}">
<Setter Property="local:SetterValueBindingHelper.PropertyBinding">
<Setter.Value>
<local:SetterValueBindingHelper
Type="System.Windows.Controls.Control, System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
Property="Background"
Binding="{Binding IsSelectedInChart, Converter={StaticResource highlighterConverter}}"/>
</Setter.Value>
</Setter>
</Style>
</sdk:DataGridTextColumn.CellStyle>
</sdk:DataGridTextColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
작동합니다 :
UPDATE
는 디자인 타임에 알려진 열에서 셀을 강조하려면 DataGridColumn.CellStyle 그 열 정의에 속성을 대신 행 스타일 설정을 설정 시도하지 않았습니다. xaml은 전체 행을 강조 표시하기 위해 제안한 것과 동일하지만 특정 열의 셀에 적용합니다.
0
DataGrid의 셀 템플릿에 따라이 코드를 사용할 수 있습니다. cellContent는 수정하려는 셀에 대한 참조를 제공합니다.
FrameworkElement cellContent = dataGrid.Columns[0].GetCellContent(dataRow);// datarow is your row where cell intersects.
cellContent .Style = s; // assuming s is the style you want to apply
관련 문제
- 1. Silverlight에서 이미지를 표시하는 방법?
- 2. tabbaritem을 강조 표시하는 방법
- 3. Datagrid Silverlight에서 선택된 행
- 4. Silverlight에서 DataGrid 정보 업데이트
- 5. Silverlight에서 DataGrid 열 머리글 바인딩
- 6. Silverlight에서 DataGrid 주위에 테두리를 제거하는 방법
- 7. DataGrid 자체를 표시하는 방법 수정
- 8. UITableView 행을 강조 표시하는 방법
- 9. GWT TextBox를 강조 표시하는 방법
- 10. TextArea에서 텍스트를 강조 표시하는 방법
- 11. 트리 노드를 강조 표시하는 방법
- 12. Silverlight에서 Datagrid 헤더의 배경색을 변경하십시오.
- 13. Silverlight에서 래핑 된 행 DataGrid
- 14. Silverlight에서 개체 컬렉션에 DataGrid 바인딩
- 15. 플렉스 DataGrid 목록 강조 표시
- 16. silverlight에서 https에 http 아이콘을 표시하는 방법 4
- 17. 목록보기에서 문자 수를 강조 표시하는 방법
- 18. 전체 행을 강조 표시하는 방법 (HorizontalScrollView 사용)
- 19. Gridview에서 가장 큰 값을 강조 표시하는 방법
- 20. android에서 하나의 버튼 만 강조 표시하는 방법
- 21. JTree에서 새로 만든 파일을 강조 표시하는 방법
- 22. 세계지도에서 특정 국가를 강조 표시하는 방법
- 23. vb.net에서 클릭 한 버튼을 강조 표시하는 방법
- 24. Dreamweaver에서 라이브로 사용되는 JavaScript를 강조 표시하는 방법
- 25. 색상이있는 브라우저 탭을 강조 표시하는 방법
- 26. jquery - 클릭하면 메뉴 링크를 강조 표시하는 방법?
- 27. android에서 이미지 뷰어를 강조 표시하는 방법
- 28. UITextView에서 각 단어를 강조 표시하는 방법
- 29. MatPlotLib에서 주석을 달거나 강조 표시하는 방법
- 30. 온라인 웹 페이지의 텍스트를 강조 표시하는 방법
특정 셀의 'BackgroundColor'를 설정하거나 특정 데이터 항목의 특정 속성을 표시하는 셀의 색을 설정 하시겠습니까? 데이터 항목이 눈금에 표시 될 때마다 강조 표시가 몇 초 동안 깜박 거리거나 표시되도록 하시겠습니까? 일정한 색상이나 데이터 바인딩 된 색상이 필요합니까? 솔루션은 요구 사항에 따라 크게 달라집니다. 제발, 몇 가지 세부 사항을 제공하십시오. –
기본적으로 bgcolor 만 설정하면됩니다. 내 응용 프로그램에 차트가 있고 내 차트에서 점을 선택하기 위해 lineseries_SelectionChanged 이벤트를 작성했습니다. 선택된 점을 감안할 때, 차트 아래에있는 DataGrid의 값에 해당하는 셀을 배경색 (더 많거나 적은 하이라이트)으로 변경하고 싶습니다. DataGrid에는 차트의 모든 값이 포함됩니다. – John