【问题标题】:XAML ListView Gridview BindingXAML ListView Gridview 绑定
【发布时间】:2014-10-31 14:53:00
【问题描述】:

WPF 新手,我有一个包含网格视图的列表视图。

我想将 ID 列绑定到文本框的文本属性,但我似乎无法弄清楚如何访问所选项目的各个网格列

代码如下所示

<ListView HorizontalAlignment="Left" Name="listView1" VerticalAlignment="Top" 
          SelectionChanged="onSelectedIndexChange" DataContext="{Binding Source={StaticResource xmlDoc}, Path=xmdModule}" 
          ItemsSource="{Binding XPath=//*[@ID]}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="ID"  Width="0" DisplayMemberBinding="{Binding Path=Attributes[ID].Value}" />
            <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=Attributes[name].Value}" />
        </GridView>
    </ListView.View>
</ListView>
<TextBlock Grid.Column="1" HorizontalAlignment="Left" Name="textBlock1" Text="{Binding Path=SelectedValue}" 
           VerticalAlignment="Top" DataContext="{Binding ElementName=listView1}" TextWrapping="Wrap" 
           TextAlignment="Left" />

【问题讨论】:

    标签: c# wpf xaml


    【解决方案1】:

    您可以尝试EITHERListViewSelectedValuePath 设置为ID 属性:

    <ListView .....
              SelectedValuePath="Attributes[ID].Value"
              .....>
    

    尝试将TextBox 绑定到SelectedItem.Attributes[ID].Value

    <TextBlock ......
               Text="{Binding SelectedItem.Attributes[ID].Value, ElementName=listView1}"
               ....../>
    

    【讨论】:

    • 最重要的建议不起作用,但我想我明白为什么。底部的工作完美,谢谢。
    • 感谢您的确认,采纳了最重要的建议 :)
    【解决方案2】:

    试试这个 其中 AttributeName 是要绑定的元素属性。

    <GridViewColumn DisplayMemberBinding="{Binding XPath=@AttributeName}" Header="AttributeName" />
    

    参考此链接以供参考How to bind the xml element name to a ListView column in WPF XAML file

    试过了,效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-02
      • 2017-06-06
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 2014-12-08
      • 2017-11-27
      相关资源
      最近更新 更多