如何使用WPF绑定在c#中附加到对象列表
型号:如何使用WPF绑定在c#中附加到对象列表,c#,wpf,C#,Wpf,型号: private void AddOrRemoveFromMatch(object sender, RoutedEventArgs e) { newlist = new List<Team>(); foreach (var player in HomePlayersList) { if(player.IsActive) newlist.Add(player); } } WPF: C#:
private void AddOrRemoveFromMatch(object sender, RoutedEventArgs e)
{
newlist = new List<Team>();
foreach (var player in HomePlayersList)
{
if(player.IsActive)
newlist.Add(player);
}
}
WPF:
C#:
private void add或removefrommatch(对象发送方,RoutedEventArgs e)
{
newlist=新列表();
foreach(主场球员列表中的var球员)
{
如果(player.IsActive)
添加(玩家);
}
}
OnLoad我已使用item source将对象列表绑定到我的列表框中。当我选中复选框时,列表框项目中有一个复选框。如果我取消选中“如果从新列表中删除某个对象(如果该对象不存在)”,则我希望将该复选框附加到该对象的新列表中
是否有一种方法可以使用唯一值附加新对象或删除,而不是每次创建新列表,例如,如果必须按索引选择项目,我将使用列表框的索引。您可以使用
ObservableCollection
而不是list
。如果集合发生更改,它会通知视图。您需要知道绑定使用INotifyPropertyChanged
和INotifyCollectionChanged
接口来通知和更新视图。您可以使用observedcollection
而不是List
。如果集合发生更改,它会通知视图。您需要知道的是,绑定使用INotifyPropertyChanged
和INotifyCollectionChanged
接口来通知和更新视图。使用observedcollection
而不是列表使用observedcollection
而不是我添加的列表InotifyProperty更改为@Connnell.O'Donnell和@ddarkidee。。。工作如期进行
型号:
private void AddOrRemoveFromMatch(object sender, RoutedEventArgs e)
{
newlist = new List<Team>();
foreach (var player in HomePlayersList)
{
if(player.IsActive)
newlist.Add(player);
}
}
我添加了inotifyproperty,更改为@Connnell.O'Donnell和@ddarkidee。。。工作如期进行
型号:
private void AddOrRemoveFromMatch(object sender, RoutedEventArgs e)
{
newlist = new List<Team>();
foreach (var player in HomePlayersList)
{
if(player.IsActive)
newlist.Add(player);
}
}
在那种情况下,你应该接受他们的一个答案。
public class Team : INotifyPropertyChanged
{
public string KnownName { get; set; } //player known name
public string Number { get; set; }
public bool isActive;
public bool IsActive
{
get { return IsActive; }
set
{
if (value != isActive)
{
isActive = value;
if(isActive)
{
OnPropertyChanged("IsActive", true);
}
else
{
OnPropertyChanged("IsActive", false);
}
}
}
}
}
protected void OnPropertyChanged(PropertyChangedEventArgs e)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, e);
}
protected void OnPropertyChanged(string propertyName, bool state)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
if(state)
{
WindowType1.HomeTeam.Add(this);
}
else
{
WindowType1.HomeTeam.Remove(WindowType1.HomeTeam.Where(i => i.Number == this.Number).Single());
}
}
public event PropertyChangedEventHandler PropertyChanged;