C# 如何处理与不使用';不存在?
我试图理解视图模型和页面控件在“newitem”页面上的绑定是如何工作的。例如: TransactionView.xaml.csC# 如何处理与不使用';不存在?,c#,wpf,silverlight,xaml,mvvm,C#,Wpf,Silverlight,Xaml,Mvvm,我试图理解视图模型和页面控件在“newitem”页面上的绑定是如何工作的。例如: TransactionView.xaml.cs public TransactionsView() { InitializeComponent(); this.DataContext = App.ViewModel; } 如果我有一个事务列表,我会这样做,AllTransactions的类型是observedcollection <ListBox Margin="12,15,12,0" He
public TransactionsView()
{
InitializeComponent();
this.DataContext = App.ViewModel;
}
如果我有一个事务列表,我会这样做,AllTransactions
的类型是observedcollection
<ListBox Margin="12,15,12,0" Height="Auto" x:Name="lb_Transactions"
HorizontalAlignment="Stretch" Grid.Row="2" Grid.ColumnSpan="2"
ItemsSource="{Binding AllTransactions}"
ItemTemplate="{StaticResource TransListDataTemplate}">
</ListBox>
当我有一个“New Transaction”页面时会发生什么,该页面包含一个简单的表单,其中包含供用户输入文本的输入控件。当用户单击“保存”时,我将创建一个新的事务
对象,使用表单中的数据填充它,并使用App.ViewModel.SaveTransaction()
添加它
在
New
表单的UI中,我应该将控件绑定到什么?我可能会先创建一个新的事务
,然后打开只操作所述事务的对话框(传入构造函数并将引用保存在属性中以进行绑定)。如果对话框被确认,对象可以添加到集合中,如果被取消,对象可以被忽略(如果作为局部变量创建,则超出范围)。因此,您说的是创建一个新的事务
对象,该对象绑定到“新”表单。然后,如果所有输入都经过验证,那么将其添加到视图模型中?是的,这就是我要说的。如果无法预先构造事务
,则最好在新表单中添加所有输入属性并绑定到这些属性,只是不太方便。谢谢H.B。!我对MVVM和绑定的概念非常陌生,但这让我明白了我的目的。我想我以前走的路是对的。呃,我远不是MVVM方面的专家,所以你可能想了解一些关于这方面的其他观点,或者检查你最终所做的是否仍然符合模式(因为我对VM没有太多的看法,在我建议的情况下,它可能只包含模型)。