2011-04-03 16 views
8

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?

+0

'" Ancak, Expression Blend bu şablonları düzenlememe izin vermiyor '' Diyor mu? 'Hayır siz!' ya da onu düzenlemekten nasıl tam olarak engelliyorsunuz? –

+0

@ 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ı. –

+0

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 . –

cevap

10

Expression Blend öğesinde, Kaynaklar sekmesinde, veri şablonunu (bir kaynak sözlüğünden veya geçerli ekrandan) bulabilmeniz gerekir. Daha sonra şablonu düzenlemek için tıklayabilirsiniz. Bu yardımcı olur mu?

+0

Evet. Çok basit - Teşekkürler. –