Переплет ComboBox - Silverlight - PullRequest
       6

Переплет ComboBox - Silverlight

1 голос
/ 31 октября 2011

Я столкнулся с небольшой проблемой. Я связываю ComboBox с двумя свойствами. IDTypeCodes - это коллекция, которая имеет свойства IDTYPDSC и IDTYPCDE. Более того, коллекция PCodes имеет свойство IDTYPECDE.

Я хочу добавить все IDTYPCDE в ComboBox, но для целей отображения я использую IDTYPDSC. но SelectedValue будет

IDTYPECDE, и это значение должно отображаться, когда я снова пытаюсь открыть окно.

<ns:GridViewDataColumn>
    <ns:GridViewDataColumn.CellTemplate>                                     
               <DataTemplate> 
                   <ns:ComboBox Margin="8,0" 
                       x:Name = "cmbIDTypeCode" 
                       SelectedValue="{Binding IDTYPECDE,Mode=TwoWay}"
                       Loaded="cmbIDTypeCode_Loaded" /> 
               </DataTemplate> 
    </ns:GridViewDataColumn.CellTemplate> 
</ns:GridViewDataColumn> 

.cs file ============================

  private void cmbIDTypeCode_Loaded(object sender, RoutedEventArgs e) 
        { 
            cmbIDTypeCode = (NetSolControls.ComboBox)sender; 
            cmbIDTypeCode.ItemsSource = IDTypeCodes; 
            cmbIDTypeCode.DisplayMemberPath = "IDTYPDSC"; 
            cmbIDTypeCode.SelectedValuePath = "IDTYPCDE";            
        } 

=============================================== ==========================================

Я тоже пытался в этом, но проблема все еще там. Теперь, как я могу получить ссылку cmbIDTypeCode? потому что он находится в DataTemplate Grid.

if (cmbIDTypeCode == null) cmbIDTypeCode = new NetSolControls.ComboBox (); Binding bindSelectedValue = новая привязка ("IDTYPECDE"); bindSelectedValue.Source = Controller.DataContext.PROPOSALAPPLICANT [index] .PROPOSALAPPLICANTIDDETAIL; Binding bindDisplayMemberPath = new Binding ("IDTYPDSC"); bindDisplayMemberPath.Source = IDTypeCodes; Binding bindSelectedValuePath = new Binding ("IDTYPCDE"); bindSelectedValuePath.Source = IDTypeCodes; bindDisplayMemberPath.Mode = BindingMode.OneWay; bindSelectedValuePath.Mode = BindingMode.OneWay; bindSelectedValue.Mode = BindingMode.TwoWay; cmbIDTypeCode.SetBinding (NetSolControls.ComboBox.DisplayMemberPathProperty, bindSelectedValue); cmbIDTypeCode.SetBinding (NetSolControls.ComboBox.SelectedValuePathProperty, bindSelectedValuePath); cmbIDTypeCode.SetBinding (NetSolControls.ComboBox.SelectedValueProperty, bindSelectedValue);

=============================================== ================== Устали по-другому ===========================

object wantedNode = gvIDDetail.FindName ("cmbIDTypeCode"); возвращает ноль. Я тоже пытался таким образом, но все еще безуспешно.

                                    ItemsSource ="{Binding IDTypeCodes.IDTYPECODEInfo}"  
                                                 DisplayMemberPath="IDTYPDSC" 
                                                 SelectedValuePath="IDTYPCDE" 
                        SelectedValue="{Binding PropsoalApplicants.PROPOSALAPPLICANTIDDETAILInfo.IDTYPECDE, Mode=TwoWay}" /> 

                                </DataTemplate> 
                            </ns:GridViewDataColumn.CellTemplate> 
                        </ns:GridViewDataColumn>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...