Я столкнулся с небольшой проблемой. Я связываю 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>