kullanan öğeler için Expression Blend ile DataTemplate Düzenleme Uygulamamda, kullanıcı tarafından çizilmiş şekiller barındıran bir ItemsControl öğesi var. Her belirli şeklin ViewModel'i bir temel ViewModel'den miras alır. Bir DataTemplateSelector, formun ViewModel türüne bağlı olarak doğru DataTemplate'i uygular. Benim kazan xamlDataTemplateSelector
:
<ItemsControl ItemsSource="{Binding MarkupElements}"
ItemTemplateSelector="{StaticResource MarkupTemplateSelector}"/>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Panel.ZIndex="1" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
bir kaynak sözlükte:
<DataTemplate x:Key="MarkupLineTemplate" DataType="x:Type vm:MarkupLineViewModel">
<.../>
</DataTemplate>
<DataTemplate x:Key="MarkupCircleTemplate" DataType="x:Type vm:MarkupCircleViewModel">
<.../>
</DataTemplate>
<view:MarkupTemplateSelector
LineTemplate="{StaticResource MarkupLineTemplate}"
CircleTemplate="{StaticResource MarkupCircleTemplate}"
x:Key="MarkupTemplateSelector"/>
Bu iyi çalışır, ancak Expression Blend beni bu şablonları düzenlemek izin vermez. Blend'i belirli bir şablonu uygulamak için zorlayabilirim, ancak daha sonra seçiciyi geçersiz kılmak için win.xaml kümemde bir ItemTemplate
özelliği ekledim.
MVVM Işık tookit kullanıyorum ve farklı türde birkaç tasarım zamanı şekiller ekleyerek çalıştı. Blend bunları gösterir, ancak şablonlara erişmede yardımcı olmazlar.
benim türetilmiş ViewModels DataContext'i için geçerlidir Blend ikna etmek için bir yol var mı böylece beni şablonları düzenlemek için izin? Bu sorun bile mi?
'" Ancak, Expression Blend bu şablonları düzenlememe izin vermiyor '' Diyor mu? 'Hayır siz!' ya da onu düzenlemekten nasıl tam olarak engelliyorsunuz? –
@ H.B. Onları Nesneleri ve Zaman Çizelgesi panelinde 'Ek Şablonları Düzenle' bağlam menüsüyle bulmaya çalışıyordum. Varolan bir kaynağı uygulamamı veya yeni bir tane oluşturmamı sağlar. Şablon Seçiciyi uygulamak, 'Mevcut Düzenle' seçeneğini devre dışı bıraktı. –
Sadece bir hata olmaktan ziyade onu düzenlemenin yolunu bulmanın bir sorunu olduğundan şüphelendim, aslında Paul Stovell ile aynı düşünceye sahiptim, daha ileride gitmem ve bu yorum üzerinden sorgulama yerine öner . –