在ListView中 - GridViewColumn基于ComboBox选择更改内容

时间:2013-11-16 16:10:19

标签: c# wpf

我正在努力了解如何允许用户从GridView列中的组合框中选择一个值,并让该选择影响该GridView列中的其他项(标签,文本框等)。如果他们只是从组合框中选择一个项目,我似乎没有从ListView中选择的项目/索引,也没有GridViewColumn所以我可以访问其内容...这很可能是用户错误,因为我是新的到WPF。任何建议将不胜感激。

因此,在下面的xaml中,我希望能够(例如)更改给定组合框选择的Label内容。我可以在代码后面检测组合框选择,但需要能够访问该网格视图列中的其他元素。

编辑: ListView可能是错误的选择。我也试过了DataGrid,但这似乎在动态内容的列中提供了更大的灵活性。

的Xaml:

<Grid x:Name="GridWindows" DockPanel.Dock="Bottom">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
        <ListView x:Name="LvValues" ItemContainerStyle="{StaticResource AlternatingListViewItemStyle}" AlternationCount="2">
            <ListBox.Items>
                <sys:String>Value1</sys:String>
                <sys:String>Value2</sys:String>
                <sys:String>Value3</sys:String>
            </ListBox.Items>
            <ListView.View >
                <GridView>
                    <GridViewColumn Header="Value" Width="120" DisplayMemberBinding="{Binding}" />
                    <GridViewColumn Header="Terminal" Width="50">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                               <CheckBox IsChecked="False"></CheckBox>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Header="Distribution" Width="400" x:Name="Distribution">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                <ComboBox Width="100" x:Name="CbDistribution" SelectedValuePath="Content" SelectionChanged="CbDistribution_OnSelectionChanged">
                                    <ComboBoxItem x:Name="Beta">Beta</ComboBoxItem>
                                    <ComboBoxItem x:Name="Constant">Constant</ComboBoxItem>
                                    <ComboBoxItem x:Name="Gamma">Gamma</ComboBoxItem>
                                </ComboBox>
                                    <Label x:Name="DistributionArg1" Content="k="></Label>
                                    <Label x:Name="DistributionArg2" Content="Theta="></Label>
                                    <Label x:Name="DistributionArg3" Content="Other="></Label>
                                </StackPanel>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>
    </Grid>

0 个答案:

没有答案