我一直在开发Windows表单应用程序,并初次使用MVVMLight Toolkit和WPF。
我的模型如下:
病人
Id, 名字, 姓氏, 等等...
测试结果
Id, 得分, 日期, 病人ID, 等等...
每个病人都可以有多个测试结果。在同一个视图(名为GTPView)上,我想显示一个病人列表框和一个测试结果列表框。当用户点击一个病人时,该病人的所有测试结果应出现在测试结果列表框中。
我知道如何将Patients ListBox的SelectedItem绑定到我的GTPViewModel中的Patient属性,但是如何将TestResults ListBox绑定到当前选定病人的所有TestResults?
我应该有一个TestResults ListBox的UserControl View和一个Patients ListBox的UserControl View,然后将这两个UserControls添加到我的GTPView中吗?还是最好只在一个视图中完成所有操作?
先谢谢你。如果需要更多信息,请告诉我。这是我的GTPView的XAML:
我的模型如下:
病人
Id, 名字, 姓氏, 等等...
测试结果
Id, 得分, 日期, 病人ID, 等等...
每个病人都可以有多个测试结果。在同一个视图(名为GTPView)上,我想显示一个病人列表框和一个测试结果列表框。当用户点击一个病人时,该病人的所有测试结果应出现在测试结果列表框中。
我知道如何将Patients ListBox的SelectedItem绑定到我的GTPViewModel中的Patient属性,但是如何将TestResults ListBox绑定到当前选定病人的所有TestResults?
我应该有一个TestResults ListBox的UserControl View和一个Patients ListBox的UserControl View,然后将这两个UserControls添加到我的GTPView中吗?还是最好只在一个视图中完成所有操作?
先谢谢你。如果需要更多信息,请告诉我。这是我的GTPView的XAML:
<Window x:Class="ApuntaNotas.Views.GTPView"
Title="GTP"
DataContext="{Binding GTP, Source={StaticResource Locator}}"
d:DataContext="{d:DesignData /SampleData/PatientsViewModelSampleData.xaml}">
<Window.Resources>
<CollectionViewSource Source="{Binding Patients}" x:Key="PatientsVS">
<CollectionViewSource.SortDescriptions>
<ComponentModel:SortDescription PropertyName="Name" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Window.Resources>
<DockPanel>
<ListBox DockPanel.Dock="Left" ItemsSource="{Binding Source={StaticResource PatientsVS}}"
x:Name="listBoxPatients" SelectedItem="{Binding SelectedPatient}" DataContext="{Binding}"
DisplayMemberPath="">
</ListBox>
<ListBox DockPanel.Dock="Right" ItemsSource="{Binding Source={StaticResource PatientsVS}}"
x:Name="listBoxTestResults" DataContext="{Binding}"
DisplayMemberPath="">
</ListBox>
</DockPanel>
</Window>
<ListBox ItemsSource="{Binding SelectedItem.TestResults, ElementName=listBoxPatients}" />
,如果您使用普通的视图模型。但我不知道这个 XML/Locator 的工作原理。此外,如果您不提供 XML 数据的示例,没有人能告诉您如何访问您的 XML 数据。 - 15ee8f99-57ff-4f92-890c-b56153