WPF Listview - привязка текстового столбца к выбранному элементу комбинированного списка - PullRequest
0 голосов
/ 17 ноября 2010

У меня есть Listview:

<ListView ItemsSource="{Binding FieldMap.SourceTargetFieldMap, Mode=Default}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Source Fields" CellTemplate="{StaticResource sourceFieldsTemplate}"/>
            <GridViewColumn Header="Source Values" CellTemplate="{StaticResource =sourceValueTemplate}">
            <GridViewColumn Header="Target Field" CellTemplate="{StaticResource targetFieldTemplate}"/>
        </GridView>
    </ListView.View>
</ListView>

И у меня также есть шаблоны данных ячеек, к которым они привязываются:

<DataTemplate x:Key="sourceFieldsTemplate">
    <ComboBox x:Name="cbSourceField" SelectedValue="{Binding Path=SourceField, Mode=TwoWay}" DisplayMemberPath="FieldName" ItemsSource="{Binding SourceFieldValues}" Width="120" />
</DataTemplate>

<DataTemplate x:Key="sourceValueTemplate">
    <TextBox x:Name="tbSourceValue" Margin="5,0,0,0" DataContext="{Binding ElementName=cbSourceField, Path=SelectedItem}" Text="{Binding Path=FieldValue, Mode=TwoWay}" TextWrapping="Wrap"  Width="115" />
</DataTemplate>

<DataTemplate x:Key="targetFieldTemplate">
    <TextBox x:Name="tbTargetField" Margin="5,0,0,0" Text="{Binding Path=TargetField}" TextWrapping="Wrap" Width="155" IsReadOnly="True"/>
</DataTemplate>

Что я хочу сделать, это привязать текстовое поле Source Valueполе для выбранного элемента в выпадающем списке SourceFields.Поэтому, когда элемент выбирается из выпадающего списка исходного поля, свойство из selectedItem (которое на самом деле является объектом с двумя свойствами - что-то вроде имени поля и значения) заполняет текстовое поле.

Оба элемента управления «скрыты» в шаблонах данныхи я не уверен, как заселить одно из другого ??

Есть идеи?Очень ценится !!

Мэтт

1 Ответ

0 голосов
/ 17 ноября 2010

Вы можете вставить ContentConteol, где содержимое привязано к выбранному элементу вашего списка - тогда шаблон отображения даты должен позаботиться об отображении - я бы установил readonly для текстового поля, так как изменение текста не будет иметь никакого эффекта.

...