मुझे DataGrid
एक पंक्ति मिली है जिसमें एक छवि है। यह छवि एक निश्चित राज्य के लिए एक ट्रिगर के साथ बाध्य है। जब राज्य बदलता है तो मैं छवि बदलना चाहता हूं।
टेम्प्लेट स्वयं HeaderStyle
a पर सेट है DataGridTemplateColumn
। इस टेम्पलेट में कुछ बाइंडिंग हैं। पहला बाध्यकारी दिवस दर्शाता है कि यह किस दिन है और राज्य एक ट्रिगर के साथ छवि को बदलता है।
ये गुण एक ViewModel में सेट किए गए हैं।
गुण:
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,
});
}
डेटा ग्रिड:
<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>
डाटाग्रिड हैडरसाइलटेम्पलेट:
<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>
अब जब मैं स्टार्टअप को प्रोजेक्ट दिखाता हूं तो चित्र दिखाई नहीं देते हैं और मुझे यह त्रुटि मिलती है:
System.Windows.Data Error: 2: टारगेट एलिमेंट के लिए गवर्निंग फ्रेमवर्क या फ्रेमवर्ककंटेनमेंट नहीं पा सकते हैं। BindingExpression: पथ = HeaderItems [0]; DataItem = बातिल; लक्ष्य तत्व 'डेटाग्रिडमप्लेटकॉल्यूम' (हैशकोड = 26950454) है; टारगेट प्रॉपर्टी 'हैडर' (टाइप 'ऑब्जेक्ट')
यह त्रुटि क्यों दिखाई जा रही है?