我制作了一个程序来存储我的项目类型的任意数量的对象。然后每个项目包含任意数量的文件,这是我为这个程序创建的另一个对象。
我遇到的问题出现在 XAML 中,在 2 个领域,但我想这有相似的起源。
我有一个包含 ListView 的窗口,其中填充了所选项目中的文件。从这里我可以选中每个旁边的框以打开或关闭它们,如果我选择一个文件,有关它的信息将显示在此窗口的状态栏中。
如果我关闭一个文件,它的文本颜色应该在 ListView 中显示为浅灰色,但它不会自动执行此操作;我必须关闭窗口并重新打开它。File 实现 INotifyPropertyChanged,并在开/关状态发生变化时触发此事件。
我使用这个 XAML 代码,转换器在我的代码后面的类中:
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Foreground" Value="{Binding Path=IsVisible, Converter={StaticResource VisibleStateToFontColourConverter}}"/>
</Style>
</ListBox.ItemContainerStyle>
同样对于所选文件,如果文件中的信息在选择时发生更改(其他类可能导致发生),我希望状态栏自动更新以反映此更改,但事实并非如此;我必须单击其他内容,然后重新选择感兴趣的文件。我也为此实现和使用 INotifyPropertyChanged,所以我不知道为什么它不会自动更新。我的状态项的 XAML 代码是这样的:
<StatusBarItem Name="statusItem_FileInfo" Content="{Binding ElementName=loadedFiles_ListView, Path=SelectedItem, Converter={StaticResource GIS_FileToInfoConverter}}"/>
有谁知道我缺少什么可以将它们结合在一起?