특정 셀 내용의 값이 주어지면 전체 행이 아닌 DataGridCell의 전경색을 변경하려고합니다. 예를 들어 셀의 날짜 값이 오래된 경우 Foreground를 빨간색으로 설정하려고합니다. 데이터 격자에서 두 개의 값을 추출하고 IMultiValueConverter를 구현하는 값 변환기를 통해 구문 분석하는 데는 MultiBinding을 사용하고 있습니다. 한마디로 MultiBinding을 사용하여 WPF DataGrid 셀의 전경색을 변경하는 중 문제가 발생했습니다.
다음없이이 컨버터 자체에 갈 필요가, 나는 다음과 같은 XAML 작성한`<Style x:Key="CellHighlighterStyle">
<Setter Property="my:ExtendedDataGrid.Foreground">
<Setter.Value>
<MultiBinding Converter="{StaticResource cellHighlighterConverter}">
<MultiBinding.Bindings>
<Binding RelativeSource="{RelativeSource self}"/>
<Binding Path="Row" Mode="OneWay"/>
</MultiBinding.Bindings>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
I then added to my Datagrid :
CellStyle을 = "{정적 리소스 CellHighlighterStyle} '`.
이제 내 변환기는 DataGridCell로 첫 번째 Value[0]
속성을보고 두 번째 값은 일종의 DependencyProperty로 구성됩니다. 실제로 행을 가져 오려고 할 때 기본 속성 또는 더미 속성을 만든 것과 같습니다. 사실, 나는 그 클래스에 연결된 클래스 객체를 얻고 싶다. 내 DataGrid는 List<of a class object>
에 바인딩됩니다.
나는 인치라는 것을 확신합니다. DataGrid Row를 파싱하여 필드의 값을 추출 할 수 있도록하거나, 반환 할 색상을 반환 할 수 있도록 해당 행 또는 열 자체에 바인딩 된 객체를 어떻게 파싱합니까? 또는 값이 주어진 DataGrid Cell의 속성을 선택적으로 변경하는 더 좋은 방법이 있습니까?
절대적으로 자리 표시. 답장을 보내 주셔서 감사합니다. 그것은 완벽하게 작동했습니다. – Brindo
도움이 되니 기쁩니다 :) –