我有一個ItemsControl
它有很多列和一個靜態標題行。我知道HeaderedItemsControl
但我不確定它能達到我想要的。控件模板和項目模板之間的itemscontrol共享網格
我現在擁有的是ControlTemplate
作爲標題和ItemsPresenter
的容器,然後ItemTemplate
用於組織記錄。
目前我在內容和項目模板中都有一個重複的網格,我想找到一個優雅的解決方案,我可以在兩個模板之間共享同一個網格,所以我不必更改兩件事情當編輯它時。模擬它下面的樣子,實際的控制有更多的列。我讀過有關IsSharedSizeScope
和SharedSizeGroup
,但我推測這是行不通的,因爲它只有函數時,有兩個網格共享一個父元素(他們都需要爲控件模板內)
<ItemsControl ItemsSource="{Binding SomeSource}">
<ItemsControl.Template>
<ControlTemplate TargetType="ItemsControl">
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Col1" />
<TextBlock Grid.Column="1" Text="Col2" />
<TextBlock Grid.Column="2" Text="Col3" />
</Grid>
<ItemsPresenter/>
</StackPanel>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="ItemCol1" />
<TextBlock Grid.Column="1" Text="ItemCol2" />
<TextBlock Grid.Column="2" Text="ItemCol3" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我已經可能做了一些不好的練習,所以隨時給我指點。
我會給它一個鏡頭,是的,我編輯的例子,當我在響應,綁定是它實際上就像我會改變這一點。我可以刪除其中一個網格的標籤嗎? –
pgwri