1
셀의 내용 유형에 따라 셀을 정렬하는 스타일을 만들려고합니다. 텍스트 인 경우 왼쪽으로 정렬되고 숫자 인 경우 오른쪽으로 정렬됩니다. 나는 그것에 주어진 값을 기반으로 정렬을 반환하는 변환기를 만들려고했습니다. 다음은 코드입니다.셀의 내용을 XAML의 변환기로 전달
<Style x:Key="Align" TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource {x:Type DataGridCell}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="{Binding Converter={StaticResource SmartAlignmentConverter}}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
문제는 변환기가 셀이 아닌 행 개체로 전송된다는 것입니다. 에서처럼 행의 변수가 포함 된 전체 객체가 전송되므로 특정 셀을 정렬하는 데 사용할 수있는 정보가 없습니다. 셀의 가치를 구체적으로 보낼 방법이 필요합니다.
업데이트 :
내가 올바른 방향으로의 한 단계입니다 셀 자체에 보낼 관리했습니다.
Binding="{Binding RelativeSource={RelativeSource self}, Converter={StaticResource SmartAlignmentConverter}}"
는 그러나 문제는 세포의 내부에 정보가 없다는 것을이되었다. 콘텐츠가 변환기로 전송되면 콘텐츠가 null입니다. 정보가 가득 차면 변환기로 보낼 수있는 방법이 있다고 생각하지 않습니까?
예, 셀에 전송 된 것처럼 보입니다. 셀은 항상 비어 있습니다. – GGMG
@ user2722951 : 어쨌든 이것이 좋은 접근 방법이라고 생각하지 않습니다. 이런 종류의 행위는 클래스 코드에 속해 있거나, 어쩌면 첨부 된 행동에 속합니다. 변환기를 통해 복잡한 물건을 보내는 것은 거의 좋은 생각이 아닙니다. –