|
分類:[C#]
いつもお世話になっております。
現在、C#でWindowsアプリを作成しています。 ※.net4.5 VS2013で開発しております。
フォーム上のコンボボックスにデータバインドさせて、 INotifyPropertyChangedインターフェースとBindingListクラスを使用して、 MVCモデルもどきを実現させようとしておりますが、 1つ困ったことにフォームを表示させる度に、メモリリークが発生しているようです。 ※データグリッドビューのフォームもあり、そちらでもリークしている模様。。。
どこをどう修正したらメモリリークが解決するのか全く検討がつきません。 どなたかご教授を願いないでしょうか?
★ソースコードの抜粋を以下に貼り付けます。
public class CDsDeliverable { public BindingList<CDsComboBoxInfo> ListA { get; set; } }
public class CNotifyPropertyChanged : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected void NotifyPropertyChanged(string property) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(property)); } } }
public class CDsComboBoxInfo : CNotifyPropertyChanged { private string displayMember = null; public string DisplayMember { get { return this.displayMember; } set { if (this.displayMember != value) { this.displayMember = value; NotifyPropertyChanged("DisplayMember"); } } }
private object valueMember = null; public object ValueMember { get { return this.valueMember; } set { if (this.valueMember != value) { this.valueMember = value; NotifyPropertyChanged("ValueMember"); } } } }
public partial class CForm : Form { public CForm() { InitializeComponent(); }
private void CForm_Load(object sender, EventArgs e) { // this.Comboはフォーム上のコンボボックス名 CDsDeliverable bind = new CDsDeliverable(); this.Combo.ValueMember = "ValueMember"; this.Combo.DisplayMember = "DisplayMember"; this.Combo.DataSource = bind.ListA; } }
|