2010-05-10 78 views
10

我試圖在WPF應用程序內創建用戶控件,該控件將作爲的DataTemplate。用戶使用4 TextBlock s控制網格。此控件還包含其他形狀和圖像,比視覺效果更好,因此爲了清晰起見,我將其從代碼中省略。在WPF應用程序中將用戶控件用作DataTemplate

當我將用戶控件放在我的mainwindow.xaml上時,我可以看到控件和正確綁定的字段指向數據源中的第一條記錄。我想要做的是讓該控件在數據庫中的每個記錄的列表框或換行面板中重複呈現。

任何人都可以提供一個指針或示例,說明如何在ListBox控件/其他面板中將用戶控件呈現爲DataTemplate

到目前爲止,我已經嘗試過以下無效: 在此先感謝您的任何提示。

<!--within Window.Resource --> 
<DataTemplate x:Key="myActivity"> 
     <local:ucActivityItm /> <!--usercontrol --> 
</DataTemplate> 

<!-- Listbox within the window --> 
<ListBox HorizontalAlignment="Stretch" ItemTemplate="{DynamicResource myActivity}" VerticalAlignment="Stretch"> 
<ListBoxItem> 
<!-- control also added for testing to ensure it rendered out--> 
<local:ucActivityItm /> 
</ListBoxItem>   
</ListBox> 

回答

13

DataTemplate實際上沒有被分配到您的ListBox。有三種方式:

1:

<ListBox.ItemTemplate> 
    <DataTemplate> 
     <local:ucActivityItm /> 
    </DataTemplate> 
</ListBox.ItemTemplate> 
ListBox

替換的資源部分的模板。
2:有點關係:

<ListBox ... ItemTemplate="{StaticResource myActivity}"> 

3:設置DataTemplate的數據類型參數上面無論你ListBox的內容。

<DataTemplate x:Key="myActivity" DataType="{x:Type ...}"> 

我通常只是做第一個,但任何應該工作。

相關問題