我有两列,第二列取决于第一列的内容。默认情况下,第二列是只读的。当我输入一些有效值时,我希望第二列变得可编辑。 为了实现这一点,我在第二列创建了一个单元格模板和单元格编辑模板,其中背面和只读绑定到第一列。加载时,第一列为null,因此我的第二列正确显示为只读。以下是第二列的单元格模板,其中背景颜色基于第一列设置。
<DataTemplate>
<Grid>
<Border Background="{Binding FristColumn,Converter={StaticResource ColorConverter}}"/>
<TextBlock Text="{Binding SecondColumn, Converter={StaticResource NumberFormatter}}" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0"/>
</Grid>
</DataTemplate>
以下是第二列的单元格编辑模板,使其可编辑
<DataTemplate>
<Grid>
<TextBox Text="{Binding SecondColumn, Mode=TwoWay, Converter={StaticResource NumberFormatter}}" Margin="0" HorizontalAlignment="Right" IsReadOnly="{Binding FirstColumn, Converter={StaticResource readOnlyConverter}, ConverterParameter=FirstColumn}" Background="{Binding Depend,Converter={StaticResource ColorConverter}, ConverterParameter=FirstColumn}" />
</Grid>
</DataTemplate>
有了这两个,当在第一列中输入有效值时,我期望第二列颜色发生变化,但事实并非如此。但是,如果我双击单元格,那么它会根据第一个单元格正常运行。有什么我想念的吗?
答案 0 :(得分:0)
问题是,对象集合没有实现INotifyPropertyChanged。实现INotifyPropertyChanged后,颜色和单元格将根据转换器变为可编辑且不可编辑。 希望这有助于其他人。