从数据模板绑定到ViewModel里属性的问题

csdnxwc 2017-12-02 09:04:11
正在实现一个功能:播放器正在播放的歌曲会在对应的歌曲列表头显示一个图标,就像这样:

datatemplate代码:
<DataTemplate x:Key="Local_GroupingSongDataTemplate">
。。。
<Path Width="40" Visibility="{Binding}"
Data="{StaticResource VolumeIcon}"
>
<Path.DataContext>
<MultiBinding Converter="{StaticResource VolumeIconConverter}" UpdateSourceTrigger="PropertyChanged">
<Binding />
<Binding Path="CurrentSong" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType=ItemsControl}"/>
</MultiBinding>
</Path.DataContext>。。。

listbox代码:
<ListBox x:Name="SpreadList" DataContext={Binding}
ItemsSource="{Binding LocalMusicCollection}"
ItemTemplate="{DynamicResource Local_GroupingSongDataTemplate}" 。。。
LocalMusicCollection和CurrentSong是ViewModel的属性。现在问题就是path里面绑定不到CurrentSong这个属性,显示DependencyProperty.UnsetValue
...全文
258 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2017-12-04
  • 打赏
  • 举报
回复
依赖项属性才支持绑定,普通的。net属性需要实现INotifyPropertyChanged接口也支持绑定,应该清楚它们的区别,绑定机制用好了会减少很多没必要的重复代码。
csdnxwc 2017-12-03
  • 打赏
  • 举报
回复
把CurrentSong属性改为依赖属性,现在可以用了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧