C# 如何在WPF中正确设置itemsource以显示ObservableCollection项?
我有一个项目,我试图找出如何将内容添加到listview中,然后再删除它们。但是我似乎无法绑定itemsource,除非我硬编码它。如何在XAML中实现它 这将向listview添加一个项目C# 如何在WPF中正确设置itemsource以显示ObservableCollection项?,c#,.net,xml,wpf,xaml,C#,.net,Xml,Wpf,Xaml,我有一个项目,我试图找出如何将内容添加到listview中,然后再删除它们。但是我似乎无法绑定itemsource,除非我硬编码它。如何在XAML中实现它 这将向listview添加一个项目 public partial class MainWindow : Window { private ObservableCollection<myItem> Item; const string pattern = @"((.*)) (.*) left
public partial class MainWindow : Window
{
private ObservableCollection<myItem> Item;
const string pattern = @"((.*)) (.*) left the game";
public MainWindow()
{
InitializeComponent();
}
private void btnAppend_Click(object sender, RoutedEventArgs e)
{
Item = new ObservableCollection<myItem>() { new myItem() { Username = "Prabhat" } };
lvUsers.ItemsSource = Item;
}
}
编辑2
MainWindow.xaml.cs
using System.Collections.ObjectModel;
using System.Windows;
namespace Listviewssssssssssssss
{
public partial class MainWindow : Window
{
public ObservableCollection<myItem> Item { get; private set; }
public MainWindow()
{
InitializeComponent();
}
private void btnAppend_Click(object sender, RoutedEventArgs e)
{
Item = new ObservableCollection<myItem>() { new myItem() { Username = "Prabhat" } };
lvUsers.Items.Refresh();
}
private void btnRemove_Click(object sender, RoutedEventArgs e)
{
}
}
}
使用System.Collections.ObjectModel;
使用System.Windows;
名称空间列表视图SSSS
{
公共部分类主窗口:窗口
{
公共ObservableCollection项{get;private set;}
公共主窗口()
{
初始化组件();
}
私有无效btnAppend_单击(对象发送方,路由目标)
{
Item=newobserveCollection(){newmyitem(){Username=“Prabhat”};
lvUsers.Items.Refresh();
}
私有void btnRemove_单击(对象发送者,路由目标)
{
}
}
}
将项目
作为公共财产:
public ObservableCollection<myItem> Item { get; private set; }
或者您可以将窗口的DataContext
设置为自身:
public partial class MainWindow : Window
{
public ObservableCollection<myItem> Item { get; private set; }
const string pattern = @"((.*)) (.*) left the game";
public MainWindow()
{
InitializeComponent();
DataContext = this;
Item = new ObservableCollection<myItem>() { new myItem() { Username = "Prabhat" } };
}
}
将
项目
设为公共财产:
public ObservableCollection<myItem> Item { get; private set; }
或者您可以将窗口的DataContext
设置为自身:
public partial class MainWindow : Window
{
public ObservableCollection<myItem> Item { get; private set; }
const string pattern = @"((.*)) (.*) left the game";
public MainWindow()
{
InitializeComponent();
DataContext = this;
Item = new ObservableCollection<myItem>() { new myItem() { Username = "Prabhat" } };
}
}
当使用WPF,尤其是XAML绑定时,的可能副本会派上用场。当使用WPF,尤其是XAML绑定时,的可能副本会派上用场。modofer给了我这种不一致的可访问性:字段类型“ObservableCollection”比字段“MainWindow”更难访问。项“它仍然没有添加listview hmIs用户名是myItem类的公共属性吗?是的,先生,我会更新问题以便你能看到类你能不能也发布MainWindow.xaml.cs的当前定义?更改modofer给了我这种不一致的可访问性:字段类型“ObservableCollection”比字段“MainWindow.Item”更难访问它仍然没有将用户名添加到listview hmIs用户名的公共属性myItem类?是的,先生,我会更新这些问题,以便您可以查看该类。您是否可以发布MainWindow.xaml.cs的当前定义?
public class myItem { ... }
public partial class MainWindow : Window
{
public ObservableCollection<myItem> Item { get; private set; }
const string pattern = @"((.*)) (.*) left the game";
public MainWindow()
{
InitializeComponent();
DataContext = this;
Item = new ObservableCollection<myItem>() { new myItem() { Username = "Prabhat" } };
}
}
<ListView Name="lvUsers" ItemsSource="{Binding Item}" ...>
public partial class MainWindow : Window, INotifyPropertyChanged
{
private ObservableCollection<myItem> _items;
public ObservableCollection<myItem> Item
{
get { return _items; }
set { _items = value; NotifyPropertyChanged(); }
}
public MainWindow()
{
InitializeComponent();
}
private void btnAppend_Click(object sender, RoutedEventArgs e)
{
Item = new ObservableCollection<myItem>() { new myItem() { Username = "Prabhat" } };
}
private void btnRemove_Click(object sender, RoutedEventArgs e)
{
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([System.Runtime.CompilerServices.CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}