【问题标题】:c# WPF form based searchc# WPF 基于表单的搜索
【发布时间】:2017-12-19 21:48:35
【问题描述】:

我正在为 c# wpf 中基于表单的搜索寻找一个简单的解决方案。

我的班级看起来像

public class Member
{
    public int id { get; set; }
    public string MNR { get; set; }
    public int htblAnrede_id { get; set; }
    public string Name { get; set; }
    public string Vorname { get; set; }
    public string Grad { get; set; }
    public Nullable<System.DateTime> GebDat { get; set; }
    public Nullable<System.DateTime> EinOed { get; set; }

    public virtual htblAnrede htblAnrede { get; set; }
    public virtual htblAusGrund htblAusGrund { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<tblBasisKennzeichen> tblBasisKennzeichen { get; set; }
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<tblBasisKontakte> tblBasisKontakte { get; set; }
}

它绑定到 wpf 用户控件。

在我的情况下,我打开一个表单并将一些内容写入某些字段。之后,我必须从 DataContext 中检查每个属性、子对象的每个属性以及列表中每个对象的每个属性,以选择列表中的匹配项。

是否有我可以使用的解决方案或第三方工具来简化它,还是我必须自己检查所有内容?

【问题讨论】:

  • 也许注释会有所帮助MSDN Docs。这将在模型级别强制对对象进行验证,并且可能会节省您在 UI 中编写所有这些验证的时间。

标签: c# wpf search


【解决方案1】:

为什么不在 Member 类中添加一个 Equals 方法,然后在需要的地方调用它:

public bool Equals(Member other)
{
    if(other.id != this.id)
        return false;

    if(!other.htblAnrede.Equals(this.htblAnrede))
        return false;

    // fill in the other checks here

    return true;
}

您必须对正在比较的每个模型执行此操作,例如htblAnrede、tblBasisKennzeichen 等

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    相关资源
    最近更新 更多