Tôi có một DataGrid
với một hàng có một hình ảnh. Hình ảnh này được liên kết với một trình kích hoạt đến một trạng thái nhất định. Khi trạng thái thay đổi tôi muốn thay đổi hình ảnh.
Bản thân mẫu được đặt trên HeaderStyle
của a DataGridTemplateColumn
. Mẫu này có một số ràng buộc. Ngày ràng buộc đầu tiên hiển thị ngày đó là ngày gì và Bang thay đổi hình ảnh bằng một bộ kích hoạt.
Các thuộc tính này được đặt trong một ViewModel.
Tính chất:
public class HeaderItem
{
public string Day { get; set; }
public ValidationStatus State { get; set; }
}
this.HeaderItems = new ObservableCollection<HeaderItem>();
for (int i = 1; i < 15; i++)
{
this.HeaderItems.Add(new HeaderItem()
{
Day = i.ToString(),
State = ValidationStatus.Nieuw,
});
}
Lưới dữ liệu:
<DataGrid x:Name="PersoneelsPrestatiesDataGrid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
AutoGenerateColumns="False" SelectionMode="Single" ItemsSource="{Binding CaregiverPerformances}" FrozenColumnCount="1" >
<DataGridTemplateColumn HeaderStyle="{StaticResource headerCenterAlignment}" Header="{Binding HeaderItems[1]}" Width="50">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{ Binding Performances[1].Duration,Converter={StaticResource timeSpanConverter},Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock TextAlignment="Center" Text="{ Binding Performances[1].Duration,Converter={StaticResource timeSpanConverter}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid>
Datagrid HeaderStyleTemplate:
<Style x:Key="headerCenterAlignment" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding Day}" />
<Image x:Name="imageValidation" Grid.Row="1" Width="16" Height="16" Source="{StaticResource imgBevestigd}" />
</Grid>
<ControlTemplate.Triggers>
<MultiDataTrigger >
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding State}" Value="Nieuw"/>
</MultiDataTrigger.Conditions>
<Setter TargetName="imageValidation" Property="Source" Value="{StaticResource imgGeenStatus}"/>
</MultiDataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Bây giờ khi tôi khởi động dự án, hình ảnh không hiển thị và tôi gặp lỗi này:
Lỗi System.Windows.Data: 2: Không thể tìm thấy FrameworkElement quản lý hoặc FrameworkContentElement cho phần tử đích. BindingExpression: Path = HeaderItems [0]; DataItem = null; phần tử đích là 'DataGridTemplateColumn' (HashCode = 26950454); thuộc tính đích là 'Header' (loại 'Đối tượng')
Tại sao lỗi này hiển thị?