1
wpf로 C#을 연습하고 있으며 템플릿 서식을 사용하려고합니다. 이 때
, 나는 정의 콤보 바인드 링크이있다 : 나는 다른 XAML 파일 (다른 창)에서이 같은 다른 콤보를 할 때, 나는 내 app.xaml
의 템플릿으로 넣어 노력하고사전의 ComboBox (WPF) 템플릿
<ComboBox Height="23" HorizontalAlignment="Left" Margin="177,28,0,0" Name="JoinedFiles_combobox" VerticalAlignment="Top" Width="164" Grid.Column="1" SelectionChanged="JoinedFiles_combobox_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate>
<Canvas Height="18">
<Image Name="ImageName" Height="16" Width="16" Canvas.Left="1" Canvas.Top="1"/>
<TextBlock Text="{Binding Name}" Canvas.Left="26" Canvas.Top="1" Width="120"/>
</Canvas>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding PictureID}" Value="0">
<Setter TargetName="ImageName" Property="Source" Value="Resources\0.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding PictureID}" Value="1">
<Setter TargetName="ImageName" Property="Source" Value="Resources\1.png"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
파일. 이렇게하면 코드 복사를 방지하고 사물을 단순화합니다.
이 내가 app.xaml
파일에 쓴 것입니다 :
<Application.Resources>
<ResourceDictionary>
<ControlTemplate x:Key="CustomisedComboBox" TargetType="{x:Type ComboBox}">
<ItemTemplate>
<DataTemplate>
<Canvas Height="18">
<Image Name="ImageName" Height="16" Width="16" Canvas.Left="1" Canvas.Top="1"/>
<TextBlock Text="{Binding Name}" Canvas.Left="26" Canvas.Top="1" Width="120"/>
</Canvas>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding PictureID}" Value="0">
<Setter TargetName="ImageName" Property="Source" Value="Resources\0.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding PictureID}" Value="1">
<Setter TargetName="ImageName" Property="Source" Value="Resources\1.png"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ItemTemplate>
</ControlTemplate>
</ResourceDictionary>
</Application.Resources>
문제는 내 컨트롤 템플릿에 ItemTemplate을 찾을 수 없다는 것입니다. 어떻게 그 항목 템플릿을 제공 할 수 있습니까?
고맙습니다! – djfoxmccloud