【问题标题】:Bind Listview Items to Infobox将列表视图项绑定到信息框
【发布时间】:2017-02-05 15:43:08
【问题描述】:

如何绑定已选项目的列表视图项目属性?

在左侧,我在列表视图中显示带有站点的文件,在右侧,我想在一种信息框(带有标签的网格)中显示名称、站点数量等。 那么,当我在列表视图中选择它时,如何将 list[index].name 绑定到名称标签?

或者我应该使用选择更改事件吗?

【问题讨论】:

  • 你能告诉我们你的代码吗,你试过什么?是 WPF 还是 Winforms?
  • 这是 wpf.. 我写了一个简单的 File 类,其中包含保存路径和名称等。我已经通过observableCollection 绑定并通过<ListView.View> <GridView><GridViewColumn Width="160" DisplayMemberBinding="{Binding Name}" Header="Name" /> 在xaml 中绑定

标签: c# wpf listview binding


【解决方案1】:

您可以将 GridView 的 SelectedItem 属性绑定到 ViewModel 上的属性:

<DataGrid SelectedItem="{Binding SelectedItem,  Mode=TwoWay}"  >
 .....
</DataGrid>

在 SelectedItem 属性中:

private YourItemType_selectedItem;
public YourItemType SelectedItem
{
    get { return _selectedItem; }
    set
    {
        if(value != _selectedItem)
        {
           _selectedItem = value;

           NotifyOfPropertyChange("SelectedItem");

           // notify InfoBox property changed
           NotifyOfPropertyChange("InfoBoxItem");
       }
    }
}

【讨论】:

    【解决方案2】:

    您可以将 InfoBox 中的 TextBlocks/TextBoxes 绑定到 ListView 的 SelectedItem 属性。

    给 ListView 一个 x:Name:

    <ListView x:Name="listView">
        <ListView.View>
            <GridView>
                <GridViewColumn Width="160" DisplayMemberBinding="{Binding Pos}" Header="Pos." />
                <GridViewColumn Width="160" DisplayMemberBinding="{Binding Name}" Header="Name" />
                <GridViewColumn Width="160" DisplayMemberBinding="{Binding Seitenzahl}" Header="Seitenzahl" />
            </GridView>
        </ListView.View>
    </ListView>
    

    ...并使用 ElementName 绑定:

    <TextBlock Text="{Binding SelectedItem.Name, ElementName=listView}" /> 
    <TextBlock Text="{Binding SelectedItem.Pos, ElementName=listView}" />
    <TextBlock Text="{Binding SelectedItem.Seitenzahl, ElementName=listView}" />
    

    “Name”、“Pos”和“Seitenzahl”是您绑定到并显示在 ListView 列中的相同属性的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 2018-03-30
      • 2017-09-22
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      相关资源
      最近更新 更多