Haz todo lo posible por comprender el código correctamente antes de usarlo a tu trabajo y si ttienes algo que aportar puedes dejarlo en la sección de comentarios.
Solución:
Primero crea un DataGridTemplateColumn
para contener el botón:
Cuando se hace clic en el botón, actualice el contenido DataGridRow
‘s DetailsVisibility
:
void ShowHideDetails(object sender, RoutedEventArgs e)
for (var vis = sender as Visual; vis != null; vis = VisualTreeHelper.GetParent(vis) as Visual)
if (vis is DataGridRow)
var row = (DataGridRow)vis;
row.DetailsVisibility =
row.DetailsVisibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
break;
Mira esto:
XAML:
Método:
private void ChangeText(object sender, RoutedEventArgs e)
DemoModel model = (sender as Button).DataContext as DemoModel;
model.DynamicText = (new Random().Next(0, 100).ToString());
Clase:
class DemoModel : INotifyPropertyChanged
protected String _text;
public String Text
get return _text;
set _text = value; RaisePropertyChanged("Text");
protected String _dynamicText;
public String DynamicText
get return _dynamicText;
set _dynamicText = value; RaisePropertyChanged("DynamicText");
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(String propertyName)
PropertyChangedEventHandler temp = PropertyChanged;
if (temp != null)
temp(this, new PropertyChangedEventArgs(propertyName));
Código de inicialización:
ObservableCollection models = new ObservableCollection();
models.Add(new DemoModel() Text = "Some Text #1." );
models.Add(new DemoModel() Text = "Some Text #2." );
models.Add(new DemoModel() Text = "Some Text #3." );
models.Add(new DemoModel() Text = "Some Text #4." );
models.Add(new DemoModel() Text = "Some Text #5." );
DataGrid1.ItemsSource = models;
Si haces scroll puedes encontrar las reseñas de otros creadores, tú todavía tienes la opción de insertar el tuyo si lo crees conveniente.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)