Programmierer, Ich habe eine ItemsSource-Bindung zur Laufzeit ändern müssen. In meinem DataGrid möchte ich Artikel vom Typ "Akte" sehen. Dieser Code im Ansichtsmodell funktioniert:Bindung an DependencyProperty vom Typ Bindung
#region DependencyProperty AktenDataGrid
public static readonly DependencyProperty AktenDataGridProperty =
DependencyProperty.Register("AktenDataGrid", typeof(DataGrid), typeof(UebersichtVM));
public DataGrid AktenDataGrid
{
get { return (DataGrid)GetValue(AktenDataGridProperty); }
set
{
SetValue(AktenDataGridProperty, value);
OnPropertyChanged();
}
}
#endregion DependencyProperty AktenDataGrid
private void OnSammelakteChangedCommand(object parameter)
{
Binding aktenBinding;
if (null == AktenDataGrid || null == parameter)
{
aktenBinding = new Binding("AngemeldeterBenutzer.AktenBenutzer");
}
else
{
aktenBinding = new Binding("SelectedItem.Sammelakte.SammelakteAkten");
aktenBinding.ElementName = "sammelaktenDataGrid";
}
AktenDataGrid.SetBinding(DataGrid.ItemsSourceProperty, aktenBinding);
}
Der Befehl durch Änderung der Auswahl in meinem sammelaktenDataGrid ausgeführt wird. Es ist notwendig, die Eigenschaft AktenDataGrid mit dem betroffenen DataGrid in Code-Behind meines UserControl zu initialisieren.
Ich möchte mein ViewModel so ändern, dass es eine DependencyProperty AktenDataGridBinding von Type Binding bereitstellt und ich ItemSource an diese Property binden möchte. Ich habe es ausprobiert, aber es funktioniert nicht. Können Sie mir helfen?
kann ich die Menge der Menschen vorstellen, jetzt Kopieren/Einfügen @ MarkusHütter Kommentar in Google Übersetzen ... :) - FYI, es (nicht sehr gut) auf Englisch übersetzt: „Tipp: Ich würde immer Programm auf Englisch Also Klassen/Variablen/Funktionsnamen. Erleichtert den nichtdeutschsprachigen Menschen Ihren Code zu verstehen. " –
@Markus Noch ein kleiner Tipp, Kommentare zu StackOverflow (als Fragen und Antworten) sollten * immer in Englisch * sein damit jeder es kann Folgen. – Clemens
Haha, tut mir leid, dass =) –