c# - 在 DataTemplate 中显示数据绑定(bind)的 StackPanel

标签 c# wpf xaml listbox stackpanel

我有一些对象正在数据绑定(bind)到 WPF 中的 ListBox。最终结果应该如下所示:

-------------------------------
| Name    | Opt1    |  Value1 |
|         | Opt2    |  Value2 |
|         | Opt3    |  Value3 |
|         | Opt4    |  Value4 |
-------------------------------

Essentially i've got a DataTemplate for the overall variable, and then the Opt/Value combo has it's own DataTemplate. I'm trying to display the list of values as simply as possible.

<Label Content="{Binding Path=Identifier.Name, Mode=OneWay}" />
<ListView Grid.Column="1" HorizontalAlignment="Stretch" 
          ItemsSource="{Binding Path=Values, Mode=OneWay}" />

Values 的绑定(bind)目前只有一个 <Grid> 和 2 个 <Label> 并且 ListView 有很多我不关注的功能,例如边框样式、选择等等,而我真正想要的是能够数据绑定(bind)使用列表。

我已尝试将项目数据绑定(bind)到堆栈面板,但无法使其在 XAML 中工作。我想另一种解决方案是做我正在做的事情,并为 ListView 重写 <Style>。关于正确执行此操作的任何建议?

最佳答案

这听起来确实像是可以用 ListBox 做的事情, 或者一个 ItemsControl 如果你不希望它们是可选的。我们还可以利用 IsSharedSizeScope附加属性使我们的列保持格式化和均匀。另外,请查看 ListBox 链接底部的 Inheritance Higharchy,它应该可以帮助您确定在不同情况下需要哪种类型的列表。

尝试这样的事情:

<DockPanel>
  <Label Content="{Binding Path=Identifier.Name, Mode=OneWay}" />
  <ListBox ItemsSource="{Binding Path=Values, Mode=OneWay}"
           Grid.IsSharedSizeScope="True">
    <ListBox.ItemTemplate>
      <DataTemplate>
        <Grid>
          <Grid.ColumnDefinitions>
            <ColumnDefinition SharedSizeGroup="OptionColumn" />
            <ColumnDefinition SharedSizeGroup="ValueColumn" />
          </Grid.ColumnDefinitions>
          <TextBlock Grid.Column="0" Text="{Binding Option}" />
          <TextBlock Grid.Column="1" Text="{Binding Value}" />
        </Grid>
      </DataTemplate>
    </ListBox.ItemTemplate>
  </ListBox>
</DockPanel>

关于c# - 在 DataTemplate 中显示数据绑定(bind)的 StackPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/957771/

相关文章:

WPF MVVM : How to setup binding on user controls?

c# - 查询字符串唯一字符串生成器?

c# - 如何将 ObservableCollection 绑定(bind)到 ListBox?

c# - 如何更新 gridview 中的绑定(bind)?

c# - 如何在 wpf 中使用 SbyteToBoolConverter 转换器,在 UI 中将 bool 属性转换为 sbyte

c# - 如何在退出 WPF 应用程序时禁用清除剪贴板?

c# - UpdateModel 的 ASP.NET MVC 2 问题

c# - 如何在可移植框架中设置 ServicePointManager.DefaultConnectionLimit

c# - 格式化不带逗号的小数

c# - 编辑 XAML 导致 Visual Studio 的设计器崩溃