我想在WPF ItemsControl中显示客户对象的列表.我已经为此创建了一个数据模板:

    <DataTemplate DataType="{x:Type myNameSpace:Customer}">
        <StackPanel Orientation="Horizontal" Margin="10">
            <CheckBox"></CheckBox>
            <TextBlock Text="{Binding Path=Number}"></TextBlock>
            <TextBlock Text=" - "></TextBlock>
            <TextBlock Text="{Binding Path=Name}"></TextBlock>
        </StackPanel>
    </DataTemplate>

所以我想要的基本上是一个简单的列表(带有复选框),其中包含数字-名称.有没有一种方法可以让我直接在绑定部分输入数字和名称?

推荐答案

有一个StringFormat属性(在.NET3.5SP1中),您可能可以使用它.而且有用的WPF绑定欺骗可以找到here个.

刚刚选中,可以将StringFormat与多重绑定一起使用.在您的情况下,代码如下所示:

<TextBlock>
  <TextBlock.Text>
    <MultiBinding StringFormat=" {0} - {1}">
        <Binding Path="Number"/>
        <Binding Path="Name"/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>

我必须先用空格格式化字符串,否则VisualStudio将无法构建,但我认为您会找到绕过它的方法:)

Edit
The space is needed in the StringFormat to keep the parser from treating {0} as an actual binding. Other alternatives:

<!-- use a space before the first format -->
<MultiBinding StringFormat=" {0} - {1}">

<!-- escape the formats -->
<MultiBinding StringFormat="\{0\} - \{1\}">

<!-- use {} before the first format -->
<MultiBinding StringFormat="{}{0} - {1}">

.net相关问答推荐

创建仅包含msBuild.Target的Nuget包

.NET模拟具有泛型返回类型的方法

使用EFCore.BulkExtensions库方法BulkInertOrUpdate时区分插入和更新的记录

为什么这个同步运行的异步睡眠会挂起?

PowerShell - 如果用户输入凭据,则查询 AD 时出错

如何在 NET 5 / 6 中使用 Direct3D11CaptureFramePool

代理、包装器或外观类之间有什么区别

如何使用 C# 中的代码更改网络设置(IP 地址、DNS、WINS、主机名)

在 C# 中将字节数组保存为磁盘上的文件的最有效方法是什么?

如何将字符串列表数据绑定到 WPF/WP7 中的 ListBox?

为什么 .NET 中没有可序列化 XML 的字典?

是否有用于 Windows / C# 开发的可嵌入 Webkit 组件?

公钥令牌的作用是什么?

当程序员说针对接口而不是对象的代码时,他们是什么意思?

如何使用 C# 创建自签名证书?

C# 中的 override 和 new 关键字有什么区别?

用 double 替换 int 时的 Visual Studio 长编译

如何从文件中删除单个属性(例如只读)?

如何获取当前的 ProcessID?

检测到包降级警告(dotnet core,vs 2017)