【发布时间】:2016-02-22 02:32:17
【问题描述】:
在我的 WPF 应用程序的 MainWindow 上,我有一个简单的 listBox,它数据绑定到 ObservableCollection。 ObservableCollection 包含具有一个字符串属性的简单“产品”类的成员。目标是显示存储在 ObservableCollection 的所有产品的“PName”属性中的文本。
MainWindow.xaml:
<Window x:Class="BindingCheck.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BindingCheck"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListBox Name="listBox1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Label FontSize="26" Content="{Binding Path=PName}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
MainWindow.Xaml.Cs:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows;
namespace BindingCheck
{
public class Product
{
private string pName;
public string PName
{
get { return pName; }
}
public Product(string pname)
{
pName = pname;
}
}
public partial class MainWindow : Window
{
private ObservableCollection<Product> products;
public MainWindow()
{
InitializeComponent();
products = new ObservableCollection<Product>();
products.Add(new Product("Toaster"));
products.Add(new Product("Big_Toaster"));
products.Add(new Product("Very_Big_Toaster"));
this.DataContext = products;
}
}
}
现在我的问题是:为什么 listBox 输出中只显示第二个 '_' 字符?输出项目应该是:“Toaster”、“Big_Toaster”和“Very_Big_Toaster”,但是我得到了另一个输出:
Output-Items in listBox: Toaster, BigToaster, VeryBig_Toaster
【问题讨论】:
-
这是一种设计行为。见:this link on StackOverflow
-
谢谢!这解决了我的问题。