动态更新列表框文本值
update listbox text values dynamically
我找到了在列表框中添加或删除项目的方法,它利用了 Observable 集合。但是我想更新列表框中的所有特定绑定 属性 值,例如仅在列表框中更新的所有文本块。这是在列表框中添加项目的示例,但我想更新 values:binding 在列表框外单击按钮时的名称,我该如何实现?
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
FillListBox();
}
MovieList Mov = new MovieList();
private void FillListBox()
{
listBox1.ItemsSource = Mov;
listBox1.DisplayMemberPath = "Name";
listBox1.SelectionChanged += new SelectionChangedEventHandler(listBox1_SelectionChanged);
}
void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Mov.Add(new Movie { Name = "Ghillli", Actor = "Vijay" });
}
}
public class Movie
{
public string Actor { get; set; }
public string Name { get; set; }
}
public class MovieList : ObservableCollection
{
public MovieList()
{
Add(new Movie { Name = "Kaavalan", Actor = "Vijay", });
Add(new Movie { Name = "Velayutham", Actor = "Vijay", });
Add(new Movie { Name = "7th Sense", Actor = "Surya", });
Add(new Movie { Name = "Billa 2", Actor = "Ajith Kumar", });
Add(new Movie { Name = "Nanban", Actor = "Vijay", });
}
}
那么如何更新列表框中绑定名称 属性 的所有值而不清空 itemsource 并重新绑定所有值并且仅更新名称 属性?
代码更改如下:
public class Movie
{
public string Actor { get; set; }
public string Name { get; set; }
}
public class MovieList : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
var mevent = PropertyChanged;
if (mevent != null)
{
mevent(this, e);
}
}
ObservableCollection<Movie> Movieitems = new ObservableCollection<Movie>();
public ObservableCollection<Movie> MovieItems
{
get { return Movieitems; }
set
{
if (Movieitems == value)
{
return;
}
Movieitems = value;
OnPropertyChanged(new PropertyChangedEventArgs("MovieItems"));
}
}
public MovieList()
{
Movieitems.Add(new Movie { Name = "Kaavalan", Actor = "Vijay", });
Movieitems.Add(new Movie { Name = "Velayutham", Actor = "Vijay", });
Movieitems.Add(new Movie { Name = "7th Sense", Actor = "Surya", });
Movieitems.Add(new Movie { Name = "Billa 2", Actor = "Ajith Kumar", });
Movieitems.Add(new Movie { Name = "Nanban", Actor = "Vijay", });
}
}
并在listBox1_SelectionChanged
中添加item dynamically in listbox
如下:
Mov.MovieItems.Add(new Movie { Name = "Ghillli", Actor = "Vijay" });
编辑:
更新现有名称属性
Mov.MovieItems[SelectedIndexValue] = new Movie { Name = "Ghillli", Actor = "Vijay" };
SelectedIndexValue = 0,1,2,3...等
更新 Name
属性 收藏
Mov.MovieItems[SelectedIndexValue].Name = "Ghillli";
我找到了在列表框中添加或删除项目的方法,它利用了 Observable 集合。但是我想更新列表框中的所有特定绑定 属性 值,例如仅在列表框中更新的所有文本块。这是在列表框中添加项目的示例,但我想更新 values:binding 在列表框外单击按钮时的名称,我该如何实现?
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
FillListBox();
}
MovieList Mov = new MovieList();
private void FillListBox()
{
listBox1.ItemsSource = Mov;
listBox1.DisplayMemberPath = "Name";
listBox1.SelectionChanged += new SelectionChangedEventHandler(listBox1_SelectionChanged);
}
void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Mov.Add(new Movie { Name = "Ghillli", Actor = "Vijay" });
}
}
public class Movie
{
public string Actor { get; set; }
public string Name { get; set; }
}
public class MovieList : ObservableCollection
{
public MovieList()
{
Add(new Movie { Name = "Kaavalan", Actor = "Vijay", });
Add(new Movie { Name = "Velayutham", Actor = "Vijay", });
Add(new Movie { Name = "7th Sense", Actor = "Surya", });
Add(new Movie { Name = "Billa 2", Actor = "Ajith Kumar", });
Add(new Movie { Name = "Nanban", Actor = "Vijay", });
}
}
那么如何更新列表框中绑定名称 属性 的所有值而不清空 itemsource 并重新绑定所有值并且仅更新名称 属性?
代码更改如下:
public class Movie
{
public string Actor { get; set; }
public string Name { get; set; }
}
public class MovieList : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
var mevent = PropertyChanged;
if (mevent != null)
{
mevent(this, e);
}
}
ObservableCollection<Movie> Movieitems = new ObservableCollection<Movie>();
public ObservableCollection<Movie> MovieItems
{
get { return Movieitems; }
set
{
if (Movieitems == value)
{
return;
}
Movieitems = value;
OnPropertyChanged(new PropertyChangedEventArgs("MovieItems"));
}
}
public MovieList()
{
Movieitems.Add(new Movie { Name = "Kaavalan", Actor = "Vijay", });
Movieitems.Add(new Movie { Name = "Velayutham", Actor = "Vijay", });
Movieitems.Add(new Movie { Name = "7th Sense", Actor = "Surya", });
Movieitems.Add(new Movie { Name = "Billa 2", Actor = "Ajith Kumar", });
Movieitems.Add(new Movie { Name = "Nanban", Actor = "Vijay", });
}
}
并在listBox1_SelectionChanged
中添加item dynamically in listbox
如下:
Mov.MovieItems.Add(new Movie { Name = "Ghillli", Actor = "Vijay" });
编辑:
更新现有名称属性
Mov.MovieItems[SelectedIndexValue] = new Movie { Name = "Ghillli", Actor = "Vijay" };
SelectedIndexValue = 0,1,2,3...等
更新 Name
属性 收藏
Mov.MovieItems[SelectedIndexValue].Name = "Ghillli";