C# 在C中绑定DataGrid和ObservableCollection#
我有一个函数,里面有3个字符串列表。我使用ObservableCollection将这3个列表保存在其中 这是ObservableCollection的定义:C# 在C中绑定DataGrid和ObservableCollection#,c#,wpf,binding,datagrid,C#,Wpf,Binding,Datagrid,我有一个函数,里面有3个字符串列表。我使用ObservableCollection将这3个列表保存在其中 这是ObservableCollection的定义: public partial class CreateAreaDialogWindow : System.Windows.Window { ObservableCollection<Tuple<string, string, string>> _obsCollection = new Obs
public partial class CreateAreaDialogWindow : System.Windows.Window
{
ObservableCollection<Tuple<string, string, string>> _obsCollection = new ObservableCollection<Tuple<string, string, string>>();
}
我得到了6列而不是3列,当然它们的内容是相同的:其中3列是从XAML代码中得到的(在本例中绑定是有效的),3列是从那一行得到的:tabela.ItemsSource=\u obscolection代码>
当我删除时:tabela.ItemsSource=\u obscolection代码>我得到一个带有复选框的空表。
因此,我知道问题在于绑定不好,但有人知道如何编辑此代码以便我可以删除:tabela.ItemsSource=\u obscolection
仍然会得到3列,其中包含列表内容和列标题:Type、MapTo和Name?您需要做的就是设置AutoGenerateColumns=“False”
并创建类似于MyViewModel
的内容,作为您的数据上下文
请尝试以下代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MyViewModel();
}
}
public class MyViewModel
{
public MyViewModel()
{
for (int i = 0; i < 1; i++)
{
_obsCollection.Add(new Tuple<string, string, string>("Test" + i, "Test2" + i, "Test3" + i));
}
}
ObservableCollection<Tuple<string, string, string>> _obsCollection = new ObservableCollection<Tuple<string, string, string>>();
public ObservableCollection<Tuple<string, string, string>> MyObsCollection
{
get { return _obsCollection; }
}
}
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
this.DataContext=新的MyViewModel();
}
}
公共类MyViewModel
{
公共MyViewModel()
{
对于(int i=0;i<1;i++)
{
_添加(新元组(“Test”+i,“Test2”+i,“Test3”+i));
}
}
ObservableCollection_obsCollection=新的ObservableCollection();
公共可观察收集MyobCollection
{
获取{return\u obscolection;}
}
}
当然有6列。您在XAML中创建了6列。我的意思是9列,其中6列带有文本,我只需要3列带有文本,3列带有复选框。没有以赖特的方式讲述这个故事:)
tabela.ItemsSource = _obsCollection;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MyViewModel();
}
}
public class MyViewModel
{
public MyViewModel()
{
for (int i = 0; i < 1; i++)
{
_obsCollection.Add(new Tuple<string, string, string>("Test" + i, "Test2" + i, "Test3" + i));
}
}
ObservableCollection<Tuple<string, string, string>> _obsCollection = new ObservableCollection<Tuple<string, string, string>>();
public ObservableCollection<Tuple<string, string, string>> MyObsCollection
{
get { return _obsCollection; }
}
}