【发布时间】:2014-09-01 22:26:12
【问题描述】:
我是 mvvm 的初学者,在开发时我遇到了问题,即我试图用可观察的集合刷新我的网格,但在我使用下面的代码的情况下没有发生这种情况,请让我知道我在哪里做错了
窗口的datacontext属性
public ProjectTabView()
{
InitializeComponent();
var vm = new ProjectTabViewModel();
this.DataContext = vm;
vm.ClosingRequest += (sender, e) => this.Close();
}
XAML
<DataGrid ItemsSource="{Binding BindFiles,UpdateSourceTrigger=PropertyChanged}" SelectionMode="Single"></DataGrid >
视图模型中的属性
public class ProjectTabViewModel : ViewModelBase, INotifyPropertyChanged
{
ObservableCollection<Project> _BindFiles;
public ObservableCollection<Project> BindFiles
{
get
{
return _BindFiles;
}
set
{
_BindFiles = value;
RaisePropertyChanged(() => BindFiles);
}
}
}
**constructor**
BindFiles = new ObservableCollection<Project>();
**ViewModel**
public void Bindfiletab()
{
List<Project> obj = ProjectTabModel.FilesBinding(GlobalProjectID);
ObservableCollection<Project> obsrvbl = new ObservableCollection<Project>(obj);
if (obsrvbl.Count > 0)
{
BindFiles.Clear();
foreach (var item in obsrvbl)
{
BindFiles.Add(item);
}
}
}
public void Execute(object sender)
{
GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(()=>
{
//here i have called my above bind file tab method to refresh my grid
}
}
【问题讨论】:
-
您的代码看起来很熟悉...您还有另一个 Stack Overflow 帐户吗?你的
Bindfiletab()成员到底应该是什么?一个方法?财产?不可能两者兼而有之。在我看来,您似乎根本不具备使用该网站所需的最基本的编程知识。 -
不,我是 stackoverflow 的新手 @Sheridan rest 我观看了有关此的帖子,但它们并没有解决我的目的。我也从 stackoverflow 获取了几行代码。有什么问题吗?
-
这个问题似乎离题了,因为您似乎没有最基本的编程知识水平,甚至可能不理解任何提供的答案。
-
@Sheridan bindfiletab() 是在网格中添加新条目后刷新网格的方法
-
@Sheridan 请让我知道我在向您提供详细信息时缺少哪些地方,以便您了解我的问题
标签: wpf mvvm datagrid observablecollection