2011-02-12 94 views
0

我有两列,第二列取决于第一列的内容。默认情况下,第二列是只读的。当我输入一个有效的值时,我希望第二列变得可编辑。 为了达到这个目的,我在第二列创建了一个单元格模板和单元格编辑模板,其中只有第一列和第一列绑定。在加载时,第一列为空,所以我的第二列正确为只读。以下是第二列的单元格模板,其中背景色根据第一列进行设置。如何根据SL4中另一个单元格上的内容只读数据格中的单元格?

<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

问题是,对象集合没有实现INotifyPropertyChanged。一旦我实现了INotifyPropertyChanged,颜色和单元格就变得可编辑且不可编辑,基于转换器。 希望这可以帮助他人。

相关问题