PDA

View Full Version : Databinding TextBox و عنصری از لیست



be_kh
پنج شنبه 31 اردیبهشت 1388, 09:28 صبح
سلام
من می خوام عضوی از لیست رو به خصیصه Text از TextBox با Databinding ارتباط بدم من این کار رو انجام میدم کار میکینه اما رمانیکه مقدار عضو لیست رو تغییر میدم مقدار TextBox تغییر نمیکنه یعنی بعد از تعریف DataBinding اگر مقدار عضو لیست تغییر کنه محتوای TextBox تغییر نمیکنه.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TextBinding
{
class ParameterStruct
{
public string ValueKey { get; set; }
public string NameKey { get; set; }
}
class ParameterMsg
{
private List<ParameterStruct> _parameterStruct = new List<ParameterStruct>();
public List<ParameterStruct> ParameterPrperty

{
get {return _parameterStruct ;}
set { _parameterStruct = value ; }
}
public void Add(string nameKey, string valueKey)
{
ParameterStruct _parameter = new ParameterStruct();
_parameter.NameKey = nameKey;
_parameter.ValueKey = valueKey;
this._parameterStruct.Add(_parameter);
}

public void Change(string nameKey, string valueKey)
{
ParameterStruct _parameterReplace = new ParameterStruct();
int _positionFind = 0;
bool _find =false;
int i = 0;
foreach (ParameterStruct _parameterTmp in this._parameterStruct)
{
if (_parameterTmp.NameKey == nameKey)
{
_find = true;
_parameterReplace = this._parameterStruct[i];
_parameterReplace.ValueKey = valueKey;
_positionFind = i;
break;
}
i++;
}
if (_find)
{
this._parameterStruct[_positionFind] = _parameterReplace;
}
}

}
}



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TextBinding
{
public partial class Form1 : Form
{
ParameterMsg parameterMsg = new ParameterMsg();
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
this.parameterMsg.Add("A0", "B0");
this.parameterMsg.Add("A1", "B1");
this.parameterMsg.Add("A2", "B2");
this.textBox1.DataBindings.Add("Text", this.parameterMsg.ParameterPrperty[1], "ValueKey");
}

private void button1_Click(object sender, EventArgs e)
{
this.parameterMsg.Change("A1", "C1");
}
}
}
31112

be_kh
جمعه 01 خرداد 1388, 20:40 عصر
مشکلم برطرف شد مشکل تو قسمت انتساب مقادیر List به List بود که باعث تغییر آدرس دهی می شد از انجا که Databinding مثل اشاره گرها عمل میکنه و بر اساس آدرس دهی هستش آمدم و مقادیر رو یکی یکی به عناصر List اختصاص دادم




this._parameterStruct[_positionFind].NameKey = _parameterReplace.NameKey ;
this._parameterStruct[_positionFind].ValueKey = _parameterReplace.ValueKey ;