【问题标题】:How to make a cell in a datagrid readonly based the content on another cell in SL4?如何根据 SL4 中另一个单元格的内容使数据网格中的单元格只读?
【发布时间】:2011-02-12 23:22:09
【问题描述】:

我有两列,第二列取决于第一列的内容。默认情况下,第二列是只读的。当我输入一些有效值时,我希望第二列变得可编辑。 为了实现这一点,我在第二列上创建了一个单元格模板和单元格编辑模板,其中背景和只读绑定到第一列。加载时,第一列为空,因此我的第二列正确地为只读。以下是第二列的单元格模板,其中背景颜色是根据第一列设置的。

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

有了这两个,当在第一列中输入有效值时,我期望第二列的颜色会改变,但事实并非如此。但是如果我双击单元格,那么它会根据第一个单元格正常运行。有什么我想念的吗?

【问题讨论】:

    标签: xaml data-binding silverlight-4.0


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-31
      • 1970-01-01
      相关资源
      最近更新 更多