WPF选项卡控件,所有选项卡都具有相同的控件

时间:2010-09-07 22:17:32

标签: wpf textbox tabcontrol user-input

如何使用wpf中的数据控件创建n个数量的选项卡?

假设主应用程序有一个名为“新客户”和“保存数据”的按钮。按“新客户”时,会出现一个新选项卡,其中包含选项卡中包含的两个文本框“名称”和“客户编号”,依此类推。填充两个字段后,按“保存数据”应将焦点选项卡中的信息存储到数据库中。

我遇到的问题是我的“名称”和“客户编号”文本框的静态名称为x:Name =“CustomerName”和x:Name =“CustomerNumber”。我发现你不能复制这些。

有人可以就如何解决这个问题提出建议吗?先感谢您!

1 个答案:

答案 0 :(得分:0)

使用MVVM:

为新客户提供View和ViewModel,并在视图上使用保存按钮,该按钮执行代码以将Customer保存到数据库。此代码应存在于客户模型或客户服务中。

NewCustomerView不需要具有与其控件关联的名称,因为您将Text属性绑定到ViewModel或底层模型上的属性,除非您必须引用它们用于其他目的而不是从每个属性获取数据之一。

在主窗体上,您将拥有Tab Control,其项目源设置为MainWindowViewModel上的ObservableCollection。按New Customer按钮将填充此ObservableCollection的新条目。

在MainWindowView中,您将放置一个数据模板,将NewCustomerViewModel映射到NewCustomerView,例如:

  <DataTemplate DataType="{x:Type vm:NewCustomerViewModel}">
    <AdornerDecorator>
       <views:NewCustomerView DataContext="{Binding}"/>
    </AdornerDecorator>
  </DataTemplate>

这基本上是说当内容是NewCustomerViewModel时,渲染一个NewCustomerView。

你应该去阅读MVVM,因为这将解决你的命名问题,以及更好的架构应用程序。

在MVVM上查看Josh Smiths article,还有很多其他信息可供阅读。