我创建了一个程序,可以存储任意数量的“Project”类型对象。每个“Project”包含任意数量的“Files”,这是我为该程序创建的另一个对象。
我的问题出现在XAML中的两个区域,但我想它们有相似的起源。
我有一个窗口,其中包含一个ListView,其中填充了所选项目中的文件。从这里,我可以在每个文件旁边勾选框以打开或关闭它们,如果我选择一个文件,则此窗口的状态栏中会显示有关它的信息。
如果我关闭一个文件,则其文本颜色应该在ListView中显示为浅灰色,但它不会自动执行此操作;我必须关闭窗口并重新打开它。该文件实现了INotifyPropertyChanged,并在开/关状态更改时触发此事件。
我使用以下XAML代码,其中转换器位于我的代码后台类中:
(这段文字与IT技术无关。)
我的问题出现在XAML中的两个区域,但我想它们有相似的起源。
我有一个窗口,其中包含一个ListView,其中填充了所选项目中的文件。从这里,我可以在每个文件旁边勾选框以打开或关闭它们,如果我选择一个文件,则此窗口的状态栏中会显示有关它的信息。
如果我关闭一个文件,则其文本颜色应该在ListView中显示为浅灰色,但它不会自动执行此操作;我必须关闭窗口并重新打开它。该文件实现了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}}"/>
有没有人知道我缺了什么才能让它完美呢?
(这段文字与IT技术无关。)