Desidero avere un bordo attorno a ListViewItem (riga nel mio caso). Sorgente di ListView e colonne generate durante il runtime. In XAML ho questo struttura:Come posso aggiungere il bordo a ListViewItem, ListView in modalità GridView
<ListView Name="listViewRaw">
<ListView.View>
<GridView>
</GridView>
</ListView.View>
</ListView>
durante il runtime mi legano ListView a DataTable, l'aggiunta di colonne necessarie e attacchi:
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());
quindi voglio aggiungere bordo attorno a ogni riga, e il comportamento di frontiera set (colore ecc.) con DataTriggers (ad esempio se il valore nella prima colonna = "Visibile", imposta il colore del bordo su nero). Posso inserire il bordo attraverso DataTemplate in ItemTemplate? Conosco la soluzione, dove si manipola con CellTemplates, ma non mi piace molto. Voglio qualcosa di simile se questo è possibile.
<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>
Grazie! Ho sperimentato su DataTemplate in molti modi, tutto quello che dovevo fare era passare a ControlTemplate, oh un'altra cosa, con GridView, dovrei usare GridViewRowPresenter invece :) – Andrew