2012-09-18 26 views
0

WCF結合值這是我寫來動態生成控制代碼:動態創建多個組合框代碼隱藏&通過在Silverlight

private void GenCtrl(string type, int typeid,string sql) 
      { 
       string id = Convert.ToString(typeid); 
      if (type == "TextBox") 
       {// created for TextBox 
       } 
      else if (type == "ComboBox") 
       { 
        ComboBoxEdit cb = new ComboBoxEdit(); 
        cb.Name = "cb" + id; 
       // this is to set unique id if more than 1 combobox created. 

        cb.Height = 20; 
        cb.Width = 100; 
        cb.Margin = new Thickness(2, 2, 0, 0); 
        cb.HorizontalAlignment = HorizontalAlignment.Left; 
        cb.Text = "Show All"; 
        stctrl.Children.Add(cb);      
        ComboBoxEdit cbx = (ComboBoxEdit)cb.FindName(cb.Name); 
        cb.DisplayMember = "Name"; 

        if(filsql !=null) 
        ServRef.GetComboBoxlistAsync(sql); //this would retrieve the list and attach to the combobox. 

        //ctlst.Add(cb.Name, type); 
       } 
} 

// WCF服務參考


ServRef.GetComboBoxlistCompleted += new EventHandler<GetComboBoxlistCompletedEventArgs>(ServRef_GetComboBoxlistCompleted); 


     void ServRef_GetComboBoxlistCompleted(object sender, GetComboBoxlistCompletedEventArgs e) 
     { 

      cb.ItemsSource = e.Result; 
      cb.SelectedIndex = 0; 
     } 

我綁定兩個組合框時遇到的問題是:cb1,cb2(動態創建)只有控件cb2 combox這是最新的get在ServRef_GetComboBoxlistCompleted方法中激活。我無法綁定第一個控件(組合框)的值。

如果我的問題不清楚讓我知道。

回答

0

我能找到使用FindName

ComboBoxEdit cbx = (ComboBoxEdit)stackctrl.FindName(cb.Name);