我正在编写一个用户输入记录的应用程序。我有一个代表记录的课程。将它绑定到文本字段可以正常工作。
MainPage.xaml.cs中:
public MainPage()
{
InitializeComponent();
// newExpense is of type ExpenseInfo
LayoutRoot.DataContext = newExpense;
}
ExpenseInfo.cs :
public class ExpenseInfo
{
public String Name { get; set; }
// ...
}
MainPage.xaml中:
<TextBox Text="{Binding Name, Mode=TwoWay}" Height="23" HorizontalAlignment="Left" Margin="13,205,0,0" Name="NameTextBox" VerticalAlignment="Top" Width="74" />
这可以获取和设置输入。两个问题:
如果我有一个ListBox,我试图用ICollection
中的ExpenseInfo
表示其成员,该怎么办?我可以自动绑定它吗?如果我使用的是ComboBox怎么办?
有时,我希望ExpenseInfo更改输入控件。我怎样才能做到这一点? (例如,如果用户在“费用”文本框中输入“3 $ 0”,我想自动将其更改为“$ 30”。)
感谢。我是Silverlight 4的新手。
答案 0 :(得分:1)
如果您可以将单个记录绑定到文本字段,那么这些记录的标准集合将以与收集字段大致相同的方式绑定。所以,是的,你可以做到这一点,虽然ComboBox的细节有所不同。 This article在WPF中有更多关于数据绑定的信息,但听起来你有一个很好的基本句柄。
要自动更正错误数据,请阅读有关Validation进程的文章。它解释了如何设置自己的系统来检测和报告用户输入中的错误。处理无效数据不一定只是在UI中显示警告 - 您可以回写TextBox的.Value字段,以便在知道如何操作时自动更正输入,但是由您来编写代码两者都是为了发现什么是错的,并弄清楚什么是正确的。