Как получить выбранное значение из шаблона данных ComboBox WPF

Я хочу узнать, как получить выбранное значение из столбца со списком в представлении списка с представлением сетки или даже сеткой данных.

xaml будет выглядеть так:

<ListView Name="lstPicker" ItemsSource="{Binding}" SelectionMode="Single" Margin="6" >
        <ListView.Resources>
            <Style TargetType="ListViewItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            </Style>
        </ListView.Resources>
        <ListView.View>
            <GridView x:Name="gridParams" ColumnHeaderContainerStyle="{StaticResource  DialogueGridViewColumnHeader}" >
                <GridViewColumn Header="Workflow Parameters" Width="Auto" DisplayMemberBinding="{Binding WorkflowParameterName}" />
                <GridViewColumn Header="Profile Parameters" Width="Auto">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox ItemsSource="{Binding Path=ProfileParametersList}" DisplayMemberPath="ProfileParameterName" />
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>

Что я хочу сделать, так это сохранить для каждого параметра рабочего процесса в списке значение из поля со списком параметров профилей.

Список привязан к наблюдаемой коллекции с некоторыми параметрами рабочего процесса, которая содержит другую наблюдаемую коллекцию с именем ProfileParametersList, содержащую некоторые профили параметров. Итак, для каждого элемента в материнской коллекции я хочу, чтобы деталь была выбрана из дочерней коллекции и впоследствии обработана.

Я попытался получить строки и привести их к типу класса, который я использую, но я не могу увидеть, что было выбрано в поле со списком, поскольку там есть весь DetailsList. Любая помощь приветствуется

Версия datagrid может выглядеть так:

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}" Name="dgPicker" CanUserAddRows="False" CanUserDeleteRows="False" >
        <DataGrid.Columns>
            <DataGridTextColumn Header="Workflow Parameters" Binding="{Binding WorkflowParameterName}" IsReadOnly="True" />
            <DataGridTemplateColumn Header="Profile Parameters">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox ItemsSource="{Binding ProfileParametersList}" DisplayMemberPath="ProfileParameterName" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

person m3s5    schedule 25.11.2011    source источник


Ответы (1)


Создайте свойство SelectedProfileParameter в своем классе WorkFlowParameter и привяжите его к SelectedItem вашего поля со списком. Тогда это должно сработать для вас -

<DataGridTemplateColumn Header="Profile Parameters">
   <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding ProfileParametersList}" DisplayMemberPath="ProfileParameterName" SelectedItem="{Binding SelectedProfileParameter}" />
        </DataTemplate>
   </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
person Rohit Vats    schedule 26.11.2011