【问题标题】:Binding to two dependency properties of the user control which is a ListViewItem绑定到用户控件的两个依赖属性,即 ListViewItem
【发布时间】:2017-04-29 12:45:21
【问题描述】:

我创建了一个用户控件,它是一个 ListViewItem。该控件有 2 个我想从我的 ViewModel 绑定到的依赖属性。但是,当我只能将一件事(集合)绑定到 ListView ItemsSource 属性时,我应该怎么做呢?如何绑定到 ExpanderInfo 依赖属性?有没有办法做到这一点,或者我做了一个错误的假设,应该以其他方式创建用户控件?

这是我的 xaml 代码:

<ListView ItemsSource="{Binding Tasks}" SelectedItem="{Binding SelectedTask}" Height="200" ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListView.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <tc:TaskTile TaskInfo="{Binding}" ExpanderInfo="{Binding ExpanderStatus}"/>
        </StackPanel>
    </DataTemplate>
</ListView.ItemTemplate>

感谢您的帮助!

【问题讨论】:

  • 您要绑定什么以及绑定到哪个属性?
  • 我有一个 ViewModel,其中包含 Tasks 集合和 ExpanderStatus 布尔值。我想将 Tasks 集合绑定到 TaskInfo 属性,并将 ExpanderStatus 绑定到 ExpanderInfo 属性。由于 ItemsSource 绑定,TaskInfo 绑定运行良好。但是 ExpanderStatus 绑定存在一个问题,就像它与 ViewModel 没有联系一样。

标签: wpf xaml binding


【解决方案1】:

&lt;tc:TaskTile TaskInfo="{Binding}" ExpanderInfo="{Binding ExpanderStatus}"/&gt; 替换为

&lt;tc:TaskTile TaskInfo="{Binding}" ExpanderInfo="{Binding DataContext.ExpanderStatus, RelativeSource={RelativeSource AncestorType=ListView, Mode=FindAncestor}}"/&gt;

【讨论】:

  • 哇,它有效!现在我明白它的全部含义了。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
相关资源
最近更新 更多