我想有一個圍繞ListViewItem(在我的情況下行)的邊框。運行時生成的ListView源代碼和列。在XAML我有這樣的結構:如何我可以在GridView模式下添加邊框ListViewItem,ListView
<ListView Name="listViewRaw">
<ListView.View>
<GridView>
</GridView>
</ListView.View>
</ListView>
運行期間我綁定列表視圖到數據表中,添加必要的列和綁定:
var view = (listView.View as GridView);
view.Columns.Clear();
for (int i = 0; i < table.Columns.Count; i++)
{
GridViewColumn col = new GridViewColumn();
col.Header = table.Columns[i].ColumnName;
col.DisplayMemberBinding = new Binding(string.Format("[{0}]", i.ToString()));
view.Columns.Add(col);
}
listView.CoerceValue(ListView.ItemsSourceProperty);
listView.DataContext = table;
listView.SetBinding(ListView.ItemsSourceProperty, new Binding());
所以我想補充圍繞各排邊界,並設置邊界行爲(顏色等)與DataTriggers(例如,如果第1列中的值=「可見」,將邊框顏色設置爲黑色)。 我可以通過ItemTemplate中的DataTemplate放置邊框嗎?我知道解決方案,您可以使用CellTemplates進行操作,但我不太喜歡它。如果可能的話,我想要這樣的東西。
<DataTemplate>
<Border Name="Border" BorderBrush="Transparent" BorderThickness="2">
<ListViewItemRow><!-- Put my row here, but i ll know about table structure only during runtime --></ListViewItemRow>
</Border>
</DataTemplate>
謝謝!我以很多方式在DataTemplate上進行了實驗,我只需將其切換到ControlTemplate,另外一件事情,使用GridView,應該使用GridViewRowPresenter :) – Andrew 2010-05-12 09:24:36