2011-11-21 116 views
1
更改的DataTemplate

我想實現這個使用尤金Akinshin的從這裏代碼:http://forums.silverlight.net/t/237947.aspx/1與屬性綁定在Silverlight

這似乎是一個非常好的方式結合到已經存在的性質和手段的配置都可以在XAML中定義。

但是,我無法得到它的工作。

我定義的模板使用這樣的:

<Converters:TemplateSelectorConverter x:Key="templateConverter"> 
    <Converters:TemplateSelectorCase TemplateReference="Minimised" Template="{StaticResource SmallOrders}"/> 
    <Converters:TemplateSelectorCase TemplateReference="Restored" Template="{StaticResource MediumOrders}"/> 
    <Converters:TemplateSelectorCase TemplateReference="Maximised" Template="{StaticResource LargeOrders}"/> 
</Converters:TemplateSelectorConverter> 

,然後設置我的ListBox項模板是這樣的:

ItemTemplate="{Binding CurrentState, Converter={StaticResource templateConverter}}" 

CurrentState是的是「最小化」的字符串,'最大化'或'恢復'(我已經編輯了鏈接的例子,以字符串作爲鍵而不是整數),默認情況下設置爲'最小化',但我得到的是一個列表Cannot create [my object type]在我的ListBox

這些模板絕對可以工作,因爲我可以在ViewModel中公開視圖並在代碼中設置DataTemplate,並且存在依賴相同CurrentState屬性的視覺狀態,所以我知道View可以正確訪問屬性。不幸的是,如果我在轉換器中斷點Convert()方法,它永遠不會被擊中。

所有建議非常感謝!

回答

0

不知道你是否已經知道了這一點,但是將轉換器定義放置在與DataTemplate關係的資源中將是它工作和不工作的區別。

轉換器需要放置在數據模板之前。

相關問題