【问题标题】:is it possible to bind a datagrid to a object是否可以将数据网格绑定到对象
【发布时间】:2013-01-30 08:44:15
【问题描述】:

我想将 DataGrid 绑定到一个对象,而不是一个对象集合,

我的情况是,

我在数据库中有一条记录,其中包含用户将不断更新的几列,
并且出于 UI 设计目的,我们希望用户通过具有单行的 DataGrid 来更新它。作为一种解决方法,我创建了一个 ObserverbaleCollection 并添加了该记录, 但我想以正确的方式做这件事,所以请有人指导我。

谢谢

附言 根据以下要求

这是我尝试过的数据网格的 xaml

<DataGrid CanUserAddRows="False" IsReadOnly="False" AutoGenerateColumns="False" ItemsSource="{Binding FacilityDefaults}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Price " Binding="{Binding Price,UpdateSourceTrigger=LostFocus}"/>
        <DataGridTextColumn Header="Default Temperature" Binding="{Binding DefaultTemperature,UpdateSourceTrigger=LostFocus}"/>
    </DataGrid.Columns>
</DataGrid>`

【问题讨论】:

  • 这种“有可能吗?”问题让我热血沸腾...What have you Tried??
  • 尝试将其直接绑定到对象,
  • 然后贴出相关代码和XAML。
  • 这是一个非常笼统的问题,关于您要解决的问题的细节很少。编程几乎可以实现任何事情,但它是理想的解决方案吗?不知道。这种类型的问题就像去找机械师,告诉他你从引擎盖下听到了这种刺耳的噪音,并期望当场得到答案。
  • 只是一个建议。而不是“是否可能......”问“我如何......”并发布您尝试过的相关代码。如果不可能,会有人告诉你。

标签: c# wpf data-binding wpfdatagrid observablecollection


【解决方案1】:

首先使用 Datagrid 作为单个记录的编辑机制似乎是错误的选择。 Datagrid 用于处理项目的集合,而不是真正的单个项目。但是,如果您坚持以这种方式使用它,那么绑定到仅包含一条记录的集合是使其工作的最简单方法。 DataGrid 的 ItemsSource 需要一个 IEnumerable (MSDN),因此至少可以将其绑定到单个对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多