Привязка WPF ComboBox к другому ItemSource в шаблоне ListBox - PullRequest
2 голосов
/ 23 апреля 2010

У меня есть ListBox, который содержит текстовое поле и поле со списком в своей табличке данных:

<ListBox Height="147" Margin="158,29,170,0" Name="PitcherListBox" VerticalAlignment="Top" ItemsSource="{Binding SomeCollectionOfObjects}" Background="Black">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBox Text="{Binding Path=Name}" />
                    <ComboBox ItemsSource="{Binding LocalArrayOfIntsProperty}" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Я хочу привязать список к коллекции объектов (что я успешно сделал), но я хочув поле со списком в приведенной выше таблице данных для элемента itemssource установлено локальное свойство в окне (массив целых).Я все еще хочу, чтобы в комбинированном ящике было двустороннее связывание между выбранным элементом и свойством коллекции объектов ...

В коде есть следующее: PitcherListBox.DataContext = this;

В конце концов, я хочу, чтобы поле со списком в списке имело другой источник элементов, чем сам список.Я не могу понять, как изменить ItemsSource ComboBox в XAML.Может ли кто-нибудь дать мне обратную связь?Спасибо!

1 Ответ

4 голосов
/ 23 апреля 2010

Попробуйте это:

<ComboBox ItemsSource="{Binding LocalArrayOfIntsProperty, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type YourWindowTypeHere}}}" />

Обратите внимание, что вам нужно заменить YourWindowTypeHere типом окна, содержащим LocalArrayOfIntsProperty! Также помните, что вам нужно определить пространство имен xml для этого типа!

...