如何将WPF DataGrid绑定到ObservableCollection

你能给我一个如何将WPF DataGrid绑定到ObservableCollection的技巧吗? 我看过一些post并没有找到直接答案。 这里和任何地方都有错综复杂的问题,但我的问题并不复杂。 我有一个可观察的集合和WPF DataGrid。 它们都在WPF应用程序中,它是双工合同WCF服务的客户端。 这是一个ObservableCollection:

private ObservableCollection _myCollection = new ObservableCollection(); public ObservableCollection DownloadsCollection { get { return this._downloadsCollection; } } 

这是DataGrid的XAML标记:

             . . . . . . . .  

这是myClass类。 它在WCF服务中实现。 客户端从具有双工合同的WCF服务接收回调中的MyClass实例。 在收到MyClass的每个实例之后,将其放入ObservableCollection中以替换具有相同唯一标识符的前一个实例。

 [DataContract] public class MyClass { #region Properties ///  /// Downloading unique ID. ///  [DataMember] public Guid UniqueId { get; set; } ///  /// Target URL. ///  [DataMember] public String TargetUrl { get; set; } ///  /// Path to Save. ///  [DataMember] public String PathToSave { get; set; } ///  /// Percentage. ///  [DataMember] public Int32 Percentage { get; set; } ///  /// Downloaded bytes number. ///  [DataMember] public Int64 DownloadedBytesQuantity { get; set; } ///  /// Content size. ///  [DataMember] public Int64 RealContentLength { get; set; } ///  /// Downloading status. ///  [DataMember] public String Status { get; set; } #endregion } 

如何在我的示例中将DataGrid绑定到ObservableCollection? 提示一下这个主题。 我赦免了我糟糕的英语。

您应该可以通过使用网格的ItemsSource属性并引用您的集合(可能位于视图模型中)来执行此操作,如下所示:

 ItemsSource="{Binding Path=DownloadsCollection}" 

然后在列上添加一个绑定,以显示集合中MyClass对象的信息(属性)。

有关如何执行此操作的更详细教程,请查看此链接。

编辑:

你可以简单地尝试这样的东西,看看是否一切正常,然后转移到自定义列:

  

WPF中的Datagrid绑定检查此答案。 基本上您需要添加ItemSource绑定,以便您的网格知道datacontext。

您需要为datagrid columns添加绑定,因此它知道要显示的内容。 希望这有帮助。

此外,如果需要,您可能需要为DownloadsCollectionbinding mode添加setter 。 如果您需要更新,这会很有帮助。

您可以像这样填充动态数据网格:

 ObservableCollection data = new ObservableCollection(); this.CasesDataGrid.ItemsSource = data; 

但是不要忘记将列与您的类的每个项绑定。

XAML代码是这样的:

            

希望它对你有用。

        

以下是相应的.cs文件:

 employeeGrid.ItemsSource = employeeDetails;