ورود

View Full Version : سوال: بایند در TextBox



water_lily_2012
پنج شنبه 17 آذر 1390, 11:39 صبح
سلام
من اطلاعات را از لایه BLL به صورت زیر می خوانم:


public class TheHeadFamilyClass : Base
{
#region Declare Property

public static int ID { get; set; }
public static string FName { get; set; }
public static string LName { get; set; }

#endregion

public static List<TheHeadFamilyClass> FilterOnHeadFamily(string headFamilyCode)
{
//تعریف کلاس و متغیر ها
DAL.TheHeadFamilyClass FamilyMethode = new DAL.TheHeadFamilyClass();
List<TheHeadFamilyClass> HeadFamilyList = new List<TheHeadFamilyClass>();

IDataReader dr= FamilyMethode.FilterOnHeadFamily(headFamilyCode);
while (dr.Read())
{
TheHeadFamilyClass HeadFamilyPro = new TheHeadFamilyClass();
ID = Convert.ToInt32(dr["ID"]);
FName = dr["FName"].ToString();
LName = dr["LName"].ToString();
HeadFamilyList.Add(HeadFamilyPro);
}
return HeadFamilyList;
}
}

وقتی در یک TextBox شماره ای را وارد می کنم، ابتدا این شماره در جدول جستجو می شود و رکورد مورد نظر توسط خطوط بالا برگشت داده می شود. حالا می خواهم همه فیلد ها در TextBox های متناظر قرار بگیرد (یعنی بایند شود). برای این کار باید چه کار کنم. آیا می شود Property ها را با TextBox ها بایند کرد.
فعلا به صورت زیر عمل می کنم :


txtLName.Text=TheHeadFamilyClass.LName;

در کل دنبال روش اصولی این کار هستم.
در ضمن از دیتابیس اکسس استفاده می کنم.

Amir Oveisi
پنج شنبه 17 آذر 1390, 12:54 عصر
اول اينكه چرا همه چيز رو static تعريف كرديد؟
دوم اينكه بله ميشه property هاي يك كلاس رو به هر چيزي كه قابل bind باشه bind كرد.
مثلا فرض كنيد شما كلاستون به جاي اين سه فيلد static سه تا property يا همين اسم ها داره. و سه تا هم textbox داريد كه داخل يك stackpanel قرار دارند.

<StackPanel Name="stackPanel1" DataContext={Binding}>
<TextBox Text={Binding Id}/>
<TextBox Text={Binding FName}/>
<TextBox Text={Binding LName}/>
</StackPanel>

و كدي كه مي نويسيد بعد از اينكه يك شي كلاستون ساختيد و property هاش مقدار گرفتن:

TheHeadFamilyClass headFamily = new TheHeadFamilyClass ();
headFamily.Id = 10;
headFamily.FName = "name1";
headFamily.LName = "name2";
staclPanel1.DataContext = headFamily;

با اين كار مقدار property هاي اين شي در Textbox هاي متتناظر كه bind شده بودند نشون داده ميشه.

روال كلي كار به اين شكله. حالا جزئيات مكنه با توجه به معماري برنامتون متفاوت باشه.