【问题标题】:How to display List<KeyValuePair<string,string>> in WPF View XAML如何在 WPF View XAML 中显示 List<KeyValuePair<string,string>>
【发布时间】:2017-11-10 13:43:07
【问题描述】:

我目前有一个List> StatusValue

我填充了 9 个 KeyValue 对

我需要有关如何以这种方式将其打印到视图上的帮助:

关键值

关键值

键值..

现在我尝试了类似的方法:

  <ListBox Grid.Row="0"  Grid.Column="0" Margin="10,30,0,0" x:Name="StatusValue"
             ItemsSource="{Binding Path=StatusValue}"
             DisplayMemberPath="Key"
             SelectedValuePath="Value">
    </ListBox>

但是这似乎根本不起作用。

【问题讨论】:

  • StatusValue 应该是 ListBox(或其父元素之一)的 DataContext 中对象的公共属性。如果要同时显示 Key 和 Value,则应在 ListBox 的 ItemTemplate 中声明一个带有两个 TextBlock 的 DataTemplate,而不是设置 DisplayMemberPath。
  • @Clemens O/T IIRC 前几天看到你在评论中推荐了一本 WPF 书籍。有人刚要我推荐,我没有推荐。你还记得那本书是什么吗?
  • @Ed 这是亚当·内森的WPF Unleashed

标签: c# wpf xaml


【解决方案1】:

列表框只是一个容器。您需要为其定义一个模板,在其中指定如何显示项目。例如你可以这样做:

<ListBox Grid.Row="0"  Grid.Column="0" Margin="10,30,0,0" x:Name="StatusValue"
ItemsSource="{Binding Path=StatusValue}">
     <ListBox.ItemTemplate>
         <DataTemplate>
              <WrapPanel>
                   <TextBlock Text="{Binding Key}"/>
                   <TextBlock Text="{Binding Value}"/>
              </WrapPanel>
         </DataTemplate>
      </ListBox.ItemTemplate>
</ListBox>

【讨论】:

    猜你喜欢
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    相关资源
    最近更新 更多