0

ObservableCollectionバインドされた Entity Framework 4 エンティティがありListViewます。エンティティの通常のスカラー プロパティのいずれかを変更すると、に表示される値ListViewが更新されます。

ListViewエンティティ オブジェクトはこれらのプロパティの変更通知を実装していないため、関係 (ナビゲーション) プロパティは変更されても更新されません。

現在、コレクションからエンティティを削除してから、同じ位置に再挿入して強制的ListViewに更新しています。

より良い解決策があるはずです。存在する場合、それは何ですか?

VS2010 の EF デザイナーから生成されたコードは次のとおりです。

[EdmEntityTypeAttribute(NamespaceName="RovingAuditDb", Name="AuditRecord")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class AuditRecord : EntityObject
{
    #region Factory Method

    /// <summary>
    /// Create a new AuditRecord object.
    /// </summary>
    /// <param name="id">Initial value of the Id property.</param>
    /// <param name="date">Initial value of the Date property.</param>
    public static AuditRecord CreateAuditRecord(global::System.Int32 id, global::System.DateTime date)
    {
        AuditRecord auditRecord = new AuditRecord();
        auditRecord.Id = id;
        auditRecord.Date = date;
        return auditRecord;
    }

    #endregion
    #region Primitive Properties
    // Deleted for this post
    #endregion

    #region Navigation Properties

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [XmlIgnoreAttribute()]
    [SoapIgnoreAttribute()]
    [DataMemberAttribute()]
    [EdmRelationshipNavigationPropertyAttribute("RovingAuditDb", "AuditRecordCell", "Cell")]
    public Cell Cell
    {
        get
        {
            return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Cell>("RovingAuditDb.AuditRecordCell", "Cell").Value;
        }
        set
        {
            ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Cell>("RovingAuditDb.AuditRecordCell", "Cell").Value = value;
        }
    }
    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [BrowsableAttribute(false)]
    [DataMemberAttribute()]
    public EntityReference<Cell> CellReference
    {
        get
        {
            return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Cell>("RovingAuditDb.AuditRecordCell", "Cell");
        }
        set
        {
            if ((value != null))
            {
                ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Cell>("RovingAuditDb.AuditRecordCell", "Cell", value);
            }
        }
    }
    // Rest of the Navigation properties removed for this post
4

1 に答える 1

1

これらのエンティティは、 に基づく WPF 双方向バインディングには適していませんINotifyPropertyChanged。クライアント/サーバー タイプの WPF アプリケーションでの使用に最適なSelf Tracking Entitiesをご覧になることをお勧めします。

于 2013-01-18T18:13:27.253 に答える