WPF BInding 列表框的选定项 属性

WPF BInding selected Item Property of list box

我有以下场景 我有计算机列表 列出计算机;

并且计算机具有以下属性

Computer{
  User current-user;
  String name;

}

User{
   Date-time Start Time;
   Date Time Elapsed;
  ....}

我想要下面的视图

列表视图中的计算机名称列表

当当前用户的详细信息在该计算机中![在此处输入图像说明] [1]

我需要一些提示,我如何在 XAML c 计算机和用户对象实现 Inotifypropertychanged 接口和我的集合是 Observable 集合

这是一个客户端服务器应用程序,因此我假设在上述条件下 UI 将使用来自客户端计算机的当前用户信息进行更新。谢谢!

您可以通过以下方式完成此操作:

1- 将您的计算机列表绑定到列表框

<ListBox Name="ComputersListbox" ItemsSource={Binding YourPropertyListHere}>
    <ListBox.ItemTemplate>
         <DataTemplate>
             <StackPanel>
                 <TextBlock Text={Binding name}>
             </StackPanel>
         </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

将列表框的选定项绑定到网格布局的数据上下文:

<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,当您更改视图模型中的属性时,视图将被更新。