开发者

Bind combobox inside an itemscontrol

I am trying to populate a combobox, which is part of an itemscontrol, with a list of items (ParentCredentials). The problem is that these ParentCredentials are at the same level of the items being binded with the itemscontrol. Not sure if this is clear but if you have a look at the view model it should make more sense

This is my viewmodel:

 public class AccessControlViewModel : INotifyPropertyChanged
    {
 public ObservableCollection<LogonCredential> Credentials 
        {...}
  public List<string> ParentCredentials
        {...}开发者_JAVA百科
}

And i have the following XAML.

<ItemsControl ItemsSource="{Binding AccessControl.Credentials}" HorizontalContentAlignment="Stretch">
       <ItemsControl.ItemTemplate>
       <DataTemplate>                              
             <Grid  >
                 <Grid.ColumnDefinitions >
                     <ColumnDefinition Width="*" />
                     <ColumnDefinition Width="*"/>
                     <ColumnDefinition Width="*"/>
                 </Grid.ColumnDefinitions>                                    

             <Label  Grid.Column="0" Content="{Binding Path=DisplayName}"/>  
             <ComboBox Grid.Column="2" ItemsSource="{Binding Source={RelativeSource AncestorType={x:Type vm:ResourceViewModel}}, Path=AccessControl.ParentCredentials}">                                          
             </ComboBox>
           ...

How can I make this binding? Also note that AccessControl is a part of ResourceViewModel class.


You need to navigate back up to the ItemsControl, and bind via the DataContext path.

{Binding RelativeSource={RelativeSource AncestorType=ItemsControl}, Path=DataContext.AccessControl.ParentCredentials}

Source={RelativeSource... never works in any case. Further the AncestorType is always some FrameworkElement rather than a data-object.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜