سلام. من یک لیست باکس دارم که داخلش چند تا چک باکس گذاشتم. (چک باکس ها با کد نویسی به لیست باکس اضافه میشن و مقادیرشون رو از جدول میگیرن) و یک تکست باکس برای جست و جو که در رویداد TextChanged کد زیر رو نوشتم
private void TXT_Search_TextChanged(object sender, TextChangedEventArgs e)        {
Connection.Close();
Connection.Open();
string CmdStringPeople = "SELECT CName FROM TBL_Customer WHERE (CName=@CName) OR (CName LIKE '%' + @CName + '%') ORDER BY CName ASC";
OleDbCommand CmdPeople = new OleDbCommand(CmdStringPeople, Connection);
CmdPeople.Parameters.AddWithValue("@CName", TXT_Search.Text);
OleDbDataAdapter dr = new OleDbDataAdapter(CmdPeople);
DataTable dt = new DataTable("table");
dr.Fill(dt);
LSB_RPeople.DataContext = dt;
Connection.Close();
}


وقتی کاربر چک باکسها را انتخاب میکنه و بعد توی تکست باکس سرچ میکنه ، چک باکسهایی که تیکشونو زده میرن. من میخوام تیکاش باشن. چطور این کارو انجام بدم؟
در کد زیر با کلیک روی دکمه چک باکسهای انتخاب شده داخل آرایه ریخته میشن.


private void BTN_RegisterPeople_Click(object sender, RoutedEventArgs e)        {

//store data in array for using page form1
try
{
Connection.Close();
Connection.Open();
int count = LSB_RPeople.Items.Count + 1;
ArrayRelatedPeople = new string[count];
int index_ArrayRelatedPeople = 0;
for (int i = 0; i < LSB_RPeople.Items.Count; i++)
{
ListBoxItem ListBoxItemObj = (ListBoxItem)LSB_RPeople.ItemContainerGenerator.Co ntainerFromItem(LSB_RPeople.Items[i]);
ContentPresenter ContentPresenterObj = FindVisualChild<ContentPresenter>(ListBoxItemObj);
DataTemplate DataTemplateObj = ContentPresenterObj.ContentTemplate;
CheckBox Chk = (CheckBox)DataTemplateObj.FindName("ChkList", ContentPresenterObj);
if (Chk.IsChecked == true)
{
ArrayRelatedPeople[index_ArrayRelatedPeople++] = Chk.Content.ToString(); //store data in array for using page form1
}
}
Application.Current.Properties["isFirst"] = "false";
Connection.Close();
this.Hide();
}
catch (Exception)
{
MessageBox.Show("ERROR 1 in BTN_RegisterPeople_Click: can not store data in array ");
}
}