我正在使用 Microsoft Access 和 WPF 开发 ERP 类型系统。我对如何将信息绑定到某些文本框和树视图选择有一些疑问。所以,在我问这个问题之前,让我提供一下我已经做过的事情的背景。
我的数据库中有以下表格:
Table: tbl_Vendors
Column: ID - Autonumber
Column: Name - string(75)
Table: tbl_Departments
Column: ID - Autonumber
Column: Name - string(100)
Table: tbl_Products
Column: ID - Autonumber
Column: Department - Number (linked to tbl_Departments.ID)
Column: Description - string(255)
Column: UPC - string(12)
Column: Price - currency
Table: tbl_Product_Vendor_Cost
Column: VendorID - number (linked to tbl_Vendors.ID)
Column: ProductID - number (linked to tbl_Products.ID)
Column: Cost - Currency
在我的 XAML 窗口上,我有一个 Treeview,我使用 Hierarchal Data Template 来处理数据,它显示按部门排序的产品。以下是我使用的资源:
<Window.Resources>
<!-- The data template for the products-->
<DataTemplate x:Key="productTemplate">
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
<!-- The data template for the departments-->
<HierarchicalDataTemplate x:Key="treeViewTemplate" ItemsSource="{Binding Department2Product}" ItemTemplate="{StaticResource productTemplate}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</Window.Resources>
在窗口的 XAML 文件中,我有这样的树视图调用:
<TreeView Name="lstProducts" ItemsSource="{Binding tbl_Departments}" ItemTemplate="{StaticResource treeViewTemplate}" AlternationCount="2" SelectedValuePath="ID"/>
在窗口的 .cs 文件中,我定义了以下方法:
Public void UpdateUI() {
DataSet outResult;
If (ProductsDatabase.TryToGetProductsDataset(out outResult)) {
this.tvwProducts.DataContext = outResult;
}
}
每当对产品进行更改或运行 InitializeComponent 方法时,都会调用 UpdateUI 方法。所以,现在这一切都显示出来了,这是我的实际问题。我在窗口上有一些文本框,当我选择一个产品时,我希望文本框填充来自所选产品的数据。我要么想忽略任何选择的部门,要么完全阻止部门的实际选择,无论哪种方式都有效。我将尝试其他一些事情,并焦急地等待这里的任何答案。
感谢您的时间,我很感激可以给出的任何答案。