Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何处理与不使用';不存在?_C#_Wpf_Silverlight_Xaml_Mvvm - Fatal编程技术网

C# 如何处理与不使用';不存在?

C# 如何处理与不使用';不存在?,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

我试图理解视图模型和页面控件在“newitem”页面上的绑定是如何工作的。例如:

TransactionView.xaml.cs

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没有太多的看法,在我建议的情况下,它可能只包含模型)。