リストボックスにいくつかの項目を追加するための ParameterItem クラスがあります。
class ParameterItem
{
public string Name { get; set; }
public string Value { get; set; }
public ParameterItem(string name, string value)
{
Name = name;
Value = value;
}
public override string ToString()
{
return Name + " = " + Value;
}
public override bool Equals(object obj)
{
if (obj is ParameterItem)
return (Name == ((ParameterItem)obj).Name);
return false;
}
public override int GetHashCode()
{
return Name.ToLowerInvariant().GetHashCode();
}
}
また、2 つのテキストボックス (名前と値) を使用してリストボックスに項目を追加できます。リストボックス内の項目をクリックすると、テキストボックスに ParameterItem の名前と値が入力されます。リストボックスで選択した ParameterItem の内容を変更する次のコードがあります。
private void btnSaveParameter_Click(object sender, EventArgs e)
{
ParameterItem currentParameter = new ParameterItem(textParameterName.Text,
textParameterValue.Text);
// If we already have the parameter set then edit it.
if (lstbxSetParameters.Items.Contains(currentParameter))
{
((ParameterItem)lstbxSetParameters.SelectedItem).Value = currentParameter.Value;
lstbxSetParameters.;
}
// If it's not set yet then add it to the listbox.
else
{
lstbxSetParameters.Items.Add(currentParameter);
textParameterName.Text = String.Empty;
textParameterValue.Text = String.Empty;
}
}
問題は、選択した ParameterItem の内容を変更できても、リストボックスで変更されていないように見えることです。
たとえば、リスト ボックスにパラメータがあります。
テストパラメータ = 10
そして、ParameterItem を次のように変更します。
テストパラメータ = 5
しかし、リストボックスではまだ次のように見えます
テストパラメータ = 10
変更されているのに。
どうすればこの問題を解決できますか? ToString()
リストボックス項目はParameterItemのメソッドを再度呼び出して更新する必要があると思いますが、どうすればよいですか?
または、リストボックスにキーと値のペアを追加するより良い方法はありますか?