Estoy trabajando con una aplicación WPF, y estoy trabajando en un DataGrid que incorpora el uso de contenido dinámico que debe reaccionar ante eventos, etc.Enlazar entradas a DataGrid ComboBox View
Tengo el siguiente modelo de vista para la vista que contiene la cuadrícula de datos
public class HiddenFieldPanelViewModel
{
public List<HiddenFieldComponent> HiddenFieldList { get; set; }
public HiddenFieldComponent Component { get; set; }
public bool IsVisible { get; set; }
public enum FieldTypes{Constant,Variable}
public HiddenFieldPanelViewModel()
{
HiddenFieldList = new List<HiddenFieldComponent>();
IsVisible = false;
}
}
La única propiedad en este modelo que se aplica a este ejemplo es la siguiente propiedad de enumeración
public enum FieldTypes {Constant,Variable}
Lo que necesito cuando se llena DataGrid es para enlazar los tipos enum al menú desplegable que está en la celda DataGrid, aquí hay un ejemplo de uno de los elementos de la colección DataGrid después de que se hubiera agregado
Así, por ejemplo, en la imagen de arriba, me gustaría tener los dos valores de Enum de FieldTypes enum.
En mi XAML, que han especificado los siguientes:
<DataGridTemplateColumn Header="Field Type" CanUserResize="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Height="20" SelectedIndex="0" ItemsSource="{Binding Path=FieldTypes}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Path=Value}"></Label>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Las otras columnas son vinculantes para los datos correctamente, pero éste no lo es.
No estoy seguro de si hay una mejor manera de hacerlo o no. También escribí un EnumConverter del IValueConverter para manejar las conversiones string-enum-string si alguna vez se necesita.
Gracias
Grandes! ¡¡¡Funciona de maravilla!!! – TheJediCowboy
Pregunta rápida, ¿hay alguna manera de establecer el elemento seleccionado en el cuadro combinado de acuerdo con ese elemento DataGrid? – TheJediCowboy
Consulte la edición de un 'ItemsSource' actualizado y un' SelectedItem'. Básicamente, deberías vincular el elemento seleccionado a lo que se estaba utilizando para vincular la fila en tu DataGrid. La propiedad necesitaría ser OfType FieldTypes. –