WPF -- 绑定显示多个属性

本文介绍了在WPF中如何通过DataTemplate展示多个属性。方法包括使用StackPanel结合TextBlock,利用MultiBinding和StringFormat,以及TextBlock内的Run元素。还探讨了使用Converter和设置特定属性来处理复杂的显示需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考

方法1:

DataTemplate 包含一个 StackPanel;

StackPanel 包含多个 TextBlock;

一个属性绑定到一个 TextBlock。

(我比较喜欢的)

 

XAML代码

<ItemsControl ItemsSource="{Binding Path=.}">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <StackPanel Orientation="Horizontal">
        <TextBlock FontWeight="Bold" Text="{Binding LastName}" />
        <TextBlock Text=", " />
        <TextBlock Text="{Binding FirstName}" />
        <TextBlock Text=" " />
        <TextBlock Text="{Binding MiddleInitial}" />
      </StackPanel>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>

 

方法2:

DataTemplate 包含一个 TextBlock;

TextBlock 的 Text 属性用 MultiBinding;

MultiBinding 绑定多个 属性,用 StringFormat 指定这些属性显示(拼接)的格式。

(这种方法对多样化的显示格式比较无力。如 Text 中部分要粗体,部分要常规)

 

XAML代码

<ComboBox>
  <ComboBox.ItemTemplate>
    <DataTemplate>
      <TextBlock>
        <TextBlock.Text>
          <MultiBinding StringFormat="{}{0}: {1}">
            <Binding Path="idregion"/>
            <Binding Path="description"/>
          </MultiBinding>
        </TextBlock.Text>
      </TextBlock>
    </DataTemplate>
  </ComboBox.ItemTemplate>
</ComboBox>

 

方法3:

DataTemplate 包含一个 TextBlock;

TextBlock 包含多个 Run;

一个属性绑定到一个 Run。

 

XAML代码

<ComboBox Name="cboRegion">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock>
                <Run Text="{Binding idregion}" />
                <Run Text="{Binding description}" />
            </TextBlock>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

 

 

其它:

  • 有利用 Converter,处理多个绑定的属性,再显示这些属性“计算”后的值。

个人感觉太麻烦。当然也看使用场景。

 

  • 有专为显示目标值,而特设一个属性的。

这种方法可能在 MVVM 之类的设计模式中用得比较多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值