【发布时间】:2015-09-05 21:45:09
【问题描述】:
我有类人:
public class Person {
public Person(string nome) {
this.Name.Text = nome;
this.Name.Background = Brushes.Red;
System.Windows.MessageBox.Show(Name.Text.ToString());
}
public TextBox Name;
}
总的来说,我已经
List<Person> items = new List<Person>();
Person p = new Person("Samantha");
items.Add(p);
listView.ItemsSource = items;
现在,在 xaml 文件中,我有一个包含 listView 的 GridView。如果我输入字符串名称而不是文本框名称,一切都可以。但是我需要背景颜色,所以我使用了 TextBox。
问题是构造函数 Person 在 "this.Name.Text = nome;" 中崩溃我不明白为什么。谢谢大家
【问题讨论】:
-
您没有初始化 TextBox,因此在尝试设置文本值时会出现空引用异常。无论如何,这不是你应该这样做的方式。
-
@LeeO。谢谢,我忘记了...我可以再问你一件事吗?在我的 xaml 中:
如果名称是字符串,则显示。但如果我有一个 TextBox,它什么都看不到.. -
我假设 ListView 的 ItemsSource 绑定到 List
所以 GridView 的每一行的 DataContext 都是一个 Person。您可能希望绑定到 Name.Text 值。请不要这样做。摆脱 TextBox 并为该属性正确使用字符串。提出一个新问题以了解如何设置颜色。 -
你的类有太多的责任——它不应该对自己的表现负责,这也是
Person和TextBox(或背后的框架)之间的一种耦合。如果没有框架能够表示它们,您的Person对象将无法单独存在。 -
我明白了,谢谢你的建议:)
标签: c# .net wpf visual-studio listview