我正在努力了解如何允许用户从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>