지난 2 일 동안 열의 ACTUAL (보이지 않는) 인덱스를 기반으로 열 헤더에 대한 데이터 템플릿을 만들려고했습니다. 아무도 나에게 올바르게 가르쳐 주실 수 있습니까?Xceed DataGridControl 열 인덱스에 바인딩하는 방법
<!--http://stackoverflow.com/questions/13693619/change-the-color-of-a-grid-header-using-xceed-datagrid-in-wpf-->
<ControlTemplate x:Key="HeaderTemplate" TargetType="{x:Type xcdg:ColumnManagerCell}">
<DockPanel>
<TextBlock DockPanel.Dock="Top" Text="{TemplateBinding Content}" x:Name="TextContainer"/>
<TextBlock Visibility="{Binding Step, Converter={StaticResource Mapping}}" x:Name="WorkElement" DockPanel.Dock="Top" Foreground="Red" Width="100">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource Conv}">
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ParentColumn.VisiblePosition"></Binding>
<Binding Path= "FileModel.Columns"></Binding>
<Binding ElementName="TextContainer" Path="Text"></Binding>
<Binding ElementName="WorkElement" Path="Text"></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DockPanel>
</ControlTemplate>
<Style TargetType="{x:Type xcdg:ColumnManagerRow}">
<Setter Property="Background" Value="AliceBlue"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="AllowColumnReorder" Value="False"/>
</Style>
<Style TargetType="{x:Type xcdg:ColumnManagerCell}">
<Setter Property="Template" Value="{StaticResource HeaderTemplate}"/>
</Style>
변환기 :
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
var context = values[1] as IEnumerable<MatrixImportColumn>;
if (values[1] != null && values[0] != null
&& values[0] != DependencyProperty.UnsetValue
&& values[1] != DependencyProperty.UnsetValue)
{
var itemContext = (int)values[0];
var original = values[2] as string;
if (context != null)
{
var dp = context.FirstOrDefault(x => x.ColumnIndex == itemContext);
return string.Format("{0} -> {1}", original, dp.MappedInto);
}
return string.Format("{0} -> [Unmapped]", original);
}
var val = values[3] as string;
if (val != string.Empty)
return val;
else return "";
}
내 모델은이 :
public DataTable Model
{
get { return _model; }
set
{
_model = value;
OnPropertyChanged();
}
}
우리가 당신을 지원할 수 있도록 현재 코드를 보여주십시오. – dymanoid
'Column.VisiblePosition'은 어떻습니까? 네가 다른 것을 필요로하는지 나는 모른다. – grek40
@dymanoid가 업데이트되었습니다. – Hristo