<ListView>
<ListView.Resources>
<DataTempalte x:Key="label">
<TextBlock Text="{Binding Label}"/>
</DataTEmplate>
<DataTemplate x:Key="editor">
<UserControl Content="{Binding Control.content}"/> <!-- This is the line -->
</DataTemplate>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn Header="Name" CellTemplate="{StaticResource label}"/>
<GridViewColumn Header="Value" CellTemplate="{StaticResource editor}"/>
</GridView>
</ListView.View>
在銷售線,我與被動態地在代碼中創建另一用戶控件的內容替換一個用戶控件的內容。 我想要替換整個控件,而不僅僅是內容。有沒有辦法做到這一點?如何替換整個xaml元素?
編輯:
爲了澄清我的意圖,我ListView
集合保存Items
擁有控制(從UserControl
繼承),它知道如何操作該項目的價值。簡單地綁定內容就可以獲得視覺表示,但會丟棄派生控件的其他非內容相關屬性。如果我能以更全面的方式替換我的模板中的UserControl,這將解決這個問題。
有趣的聯繫,但是這不是我想要的目的。我想用另一個任意的用戶控件替換該用戶控件。 – luke
即時切換模板在這種情況下工作嗎?看到這裏的細節http://codingbandit.com/Blog/blog/wpf-data-templates-part-3-switching-data-templates-at-runtime/。 有一種方法可以做你想做的,但它是kludgey,我懷疑不是最好的方法,以達到預期的行爲。 –
在飛行中切換模板是我原來所做的。切換UserControl簡化了我所做的工作。 – luke