如何使基于在SL4另一个单元格的内容在DataGrid只读细胞?(How to make a cel

2019-11-04 16:52发布

我有两列,第二列依赖于第一列的内容。 默认情况下,第二列是只读的。 当我输入一些有效的价值,我想第二列成为可编辑的。 为了实现这一目标,我创建了那里回地面和只读绑定到第一列第二列的单元格模板和细胞编辑模板。 在负载时,第一列是空,因此只读我的第二列来正确。 以下是用于第二列,其中,所述背景色是通过基于第一列设置单元模板。

 <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>

有了这两个到位,当第一列输入有效的价值,我期待第二栏的颜色改变,但事实并非如此。 但如果我对细胞双击它,然后正确行为会基于第一个单元格。 有一些事情我失踪?

Answer 1:

问题是,对象集合没得INotifyPropertyChanged的实现。 有一次,我已经INotifyPropertyChanged的实施,颜色和细胞成为基于转换编辑和不可编辑。 希望这可以帮助别人。



文章来源: How to make a cell in a datagrid readonly based the content on another cell in SL4?