ich eine beobachtbare Sammlung haben, aber nach dem collecion aktualisieren, meine Listview ist die Aktualisierung nicht einmal nach Property Changed-Ereignis ein code Anheben: -INotifyPropertyChanged funktioniert nicht MVVM
Schauen Sie unter XAML: -
<ListView Grid.Row="1" Grid.Column="0" Name="lvGroups" Margin="0,34,0,0"
Grid.RowSpan="2" ItemsSource="{Binding Path=*VideoGroupList*,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<GridView>
<GridViewColumn Width="150" DisplayMemberBinding="{Binding *Name*}" />
</GridView>
Schauen Sie unten Klasse
public class VideoGroupViewModel : ObservableEnitiy
{
public ObservableCollection<Group> VideoGroupList { get; set; }
}
public abstract class ObservableEnitiy : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
this.VerifyPropertyName(propertyName);
if (this.PropertyChanged != null)
{
var e = new PropertyChangedEventArgs(propertyName);
this.PropertyChanged(this, e);
}
}
}
[Serializable]
public class Group : PropertyChangedNotification
{
public int ID { get; set; }
[Required(ErrorMessage = "Group name is required.")]
public string *Name*
{
get { return GetValue(() => Name); ; }
set
{
SetValue(() => Name, value);
}
}
[XmlIgnore]
public bool IsSelected { get; set; }
}
protected T GetValue<T>(Expression<Func<T>> propertySelector)
{
string propertyName = GetPropertyName(propertySelector);
return GetValue<T>(propertyName);
}
Ich rufe diese Weise
VideoGroupList = new ObservableCollection<Group>(videoGroupManager.GetVideoGroups());
OnPropertyChanged("VideoGroupList");
In der Regel wird dieses Problem durch das Steuerelement Refreshereignis verursacht, das nicht erkennt, dass sich das Steuerelement geändert hat. Der Trick, der normalerweise funktioniert, ist das Hinzufügen von VideoGroupList = null vor dem Aktualisieren der Liste. – jdweng
Als Anmerkung ist die Einstellung 'Mode = TwoWay' und' UpdateSourceTrigger = PropertyChanged' für die ItemsSource-Bindung redundant. Dies hat keine Auswirkungen, da kein Datenfluss vom Ziel zur Quelleigenschaft der Bindung erfolgt. – Clemens
@jdweng ich versuchte mit VideoGroupList = null vor dem Aktualisieren der Liste, aber nicht funktioniert. :( – user3631797