首页 > 解决方案 > 在 WPF 的 ListView 中将 ComboBox 放在一个特殊的行中

问题描述

如何将组合框放入列表视图(WPF,VB.net)的特殊行?

有一个 ListView 有两列。列是“参数”和“值”。第二列具有不同的类型(例如数字、字符串和“可选值”)并且是可编辑的。“可选值”必须出现在组合框中。我想到的一种方法是条件 XAML 标记(我不知道这是否可能?)。

我尝试了这段代码,但它显示了 listview 中所有行的 Combobox :

 <ListView x:Name="listView"
      HorizontalAlignment="Left"
      Height="237"
      Margin="40,34,0,0"
      VerticalAlignment="Top"
      Width="447"
      ItemsSource="{Binding Values}">
  <ListView.View>
    <GridView>
      <GridViewColumn Header="Parameter"
                  DisplayMemberBinding="{Binding Path=LName}"
                  Width="100" />
      <GridViewColumn Header="Value"
                  Width="150">
        <GridViewColumn.CellTemplate>
          <DataTemplate>
            <ComboBox ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=ListView}, Path=ItemsSource}"
                  Width="120">
                    <ComboBox.ItemTemplate>
                   <DataTemplate>
                  <TextBlock Text="{Binding Type}" />
                </DataTemplate>
              </ComboBox.ItemTemplate>
            </ComboBox>
          </DataTemplate>
        </GridViewColumn.CellTemplate>
      </GridViewColumn>
    </GridView>
  </ListView.View>
</ListView>

我只想对一行使用组合框,而其余行的类型是双精度或字符串。我怎样才能做到这一点?

标签: wpfvb.netlistviewmvvmcombobox

解决方案


推荐阅读