我有以下情况 我有电脑列表 列出计算机;
和计算机具有以下属性
Computer{
User current-user;
String name;
}
User{
Date-time Start Time;
Date Time Elapsed;
....}
我想拥有以下视图
列表视图中的计算机名称列表
和选择当前用户的详细信息在该计算机中![在此处输入图像说明] [1]
我需要一些提示我如何在 XAML c omputer上执行此操作,用户对象实现Inotifypropertychanged 界面,我的集合是 Observable collection < / p>
这是一个客户端服务器应用程序,所以我假设在上述条件下,UI将使用来自客户端计算机的当前用户信息进行更新。谢谢!
答案 0 :(得分:0)
您可以通过以下方式执行此操作:
1-将计算机列表绑定到列表框
<ListBox Name="ComputersListbox" ItemsSource={Binding YourPropertyListHere}>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text={Binding name}>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
将列表框的选定项目绑定到网格布局的datacontext:
<Grid Name="UserDetailGrid" DataContext={Binding SelectedItem.current-user,ElementName=ComputersListbox}><!--All the controls in the grid will consider their datasource is the SelectedItem.current-user in the listbox which is a computer-->
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text={Binding Elapsed} />
<TextBlock Grid.Column="1" Text={Binding StartTime} />
</Grid>
当您更改所选项目时,将修改网格中的数据。由于您实现了INotifyPropertyChanged,因此在更改viewmodel中的属性时将更新视图。