我想問有人爲解決我的問題與動態重寫的DataTemplate的WPF重寫靜態的DataTemplate動態版本
我有準備的DataTemplate
<Window.Resources>
<DataTemplate x:Key="pictureTemplate">
<DataTemplate.Resources>
<Style TargetType="Image">
<Setter Property="Width" Value="180" />
<Setter Property="Height" Value="120" />
<Setter Property="Margin" Value="10" />
</Style>
</DataTemplate.Resources>
<Image Source="{Binding Path=Location}" />
</DataTemplate>
</Window.Resources>
,然後我有itemcotrol有:
<ItemsControl Name="itemscontrol2" Visibility="Hidden"
ItemsSource="{Binding Path=PicturesRight}" ItemTemplate="{StaticResource pictureTemplate}" ItemsPanel="{StaticResource panelTemplate2}" local:DragDropHelper.IsDragSource="true" />
一切工作正常。但我想將此代碼重寫爲動態版本,因爲我需要更改屬性Width
和Height
的值。
我已經準備本節OD代碼:
DataTemplate dt = new DataTemplate(typeof(ItemsControl));
var style = new Style(typeof(Image));
var setter = new Setter()
{
Property = Control.WidthProperty,
Value = 200.0
};
style.Setters.Add(setter);
var setter1 = new Setter()
{
Property = Control.HeightProperty,
Value = 150.0
};
style.Setters.Add(setter1);
dt.Resources.Add(typeof(Image), style);
itemscontrol2.ItemTemplate = dt;
但這個代碼不工作。我不知道問題是什麼,但我已經嘗試了一切可能。 任何人都可以幫助我解決這個問題嗎? 謝謝。
爲什麼不選擇綁定動態屬性。在後面的代碼中編寫模板可能需要使用工廠類。 – pushpraj 2014-08-27 13:59:03