Quiero tener un borde alrededor de ListViewItem (fila en mi caso). Origen y columnas ListView generados durante Runtime. En XAML tengo esta estructura:Cómo puedo agregar borde a ListViewItem, ListView en modo GridView
<ListView Name="listViewRaw">
<ListView.View>
<GridView>
</GridView>
</ListView.View>
</ListView>
en tiempo de ejecución Ato vista de lista a DataTable, añadiendo columnas necesarias y fijaciones:
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());
así que quiero añadir borde alrededor de cada fila, y establecer el comportamiento de la frontera (color, etc.) con DataTriggers (por ejemplo, si el valor en la primera columna = "Visible", establece el color del borde en negro). ¿Puedo poner borde a través de DataTemplate en ItemTemplate? Sé solución, donde manipulas con CellTemplates, pero realmente no me gusta. Quiero algo así si esto es posible.
<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>
Gracias! Experimenté en DataTemplate de muchas maneras, todo lo que tuve que hacer fue cambiarlo a ControlTemplate, oh una cosa más, con GridView, debería usar GridViewRowPresenter en su lugar :) – Andrew