2012-10-11 45 views
2

我有兩個模板,一個用於文本框和一個用於列表視圖,兩者都只是用來給他們圓角而不是默認的矩形。我的文本框需要「ScrollViewer x:Name =」PART_ContentHost「行來顯示文本,但是不能用於列表視圖。如果我爲列表視圖取出模板,則會顯示示例listviewitem(stuff)它不會,我看不到任何其他項目我在後面的代碼添加什麼我在XAML失蹤得到這個工作我的列表視圖項目沒有顯示爲它設置一個模板

這裏是我下面的XAML:?

<!-- Design Templates to set the borders of the controls--> 
<UserControl.Resources> 
    <ControlTemplate x:Key="TextBoxTemplate" TargetType="TextBox"> 
     <Border BorderBrush="Black" BorderThickness="1,1,1,.5" CornerRadius="7"> 
      <ScrollViewer x:Name="PART_ContentHost" ></ScrollViewer> 
     </Border> 
    </ControlTemplate> 
    <ControlTemplate x:Key="ListViewTemplate" TargetType="ListView"> 
     <Border BorderBrush="Black" BorderThickness=".5,1,1,1" CornerRadius="7"> 
     </Border> 
    </ControlTemplate> 
</UserControl.Resources> 

<!-- Controls --> 
<Grid Height="270" Width="400"> 
    <StackPanel Width="390"> 
     <TextBox Height="35" Name="InputTextbox" Template="{StaticResource TextBoxTemplate}" VerticalContentAlignment="Center" TextChanged="InputTextbox_TextChanged"></TextBox> 
     <ListView Height="235" Name="ResultsListView" Template="{StaticResource ListViewTemplate}" SelectionChanged="ResultsListView_SelectionChanged"> 
      <ListViewItem Content="stuff"></ListViewItem> 
     </ListView> 
    </StackPanel> 
</Grid> 
+0

你錯過了'ContentPresenter'。我猜你的'TextBox'不需要它,因爲它可能是爲了將內容放在一個名爲'PART_ContentHost'的組件中而編寫的。 – Rachel

回答

1

您的ControlTemplate沒有與之關聯的演示者,這就是爲什麼您沒有看到任何項目。請參閱此頁查看如何創建ListView.ControlTemplate的實用示例:

MSDN: ListView ControlTemplate Example

,這裏是你的控件模板更新的XAML:在你的`ListView`模板

<ControlTemplate x:Key="ListViewTemplate" TargetType="ListView"> 
    <Border BorderBrush="Black" BorderThickness=".5,1,1,1" CornerRadius="7"> 
     <ScrollViewer> 
     <ItemsPresenter /> 
     </ScrollViewer> 
    </Border> 
</ControlTemplate> 
+0

非常感謝!那正是我所錯過的。我無法找到任何地方的文檔,谷歌是沒有幫助:( 這樣一個簡單的解決方案,我永遠不會發現,否則,謝謝! –

+0

很高興幫助:) –

相關問題