WPF Datagrid TemplateColumn控件启用和禁用

时间:2012-10-26 07:06:10

标签: wpf wpfdatagrid

我有两个TemplateColumn的Datagrid。

第一列是具有扩展IntergerUpDown控件的Combobox和Second列

我需要根据Combox box SelectedItem值启用/禁用IntegerUpDown控件。

请帮我解决这个问题。示例下面的xaml。

<Grid><DataGrid ItemsSource="{Binding List1}" Name="x1">
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="ColorTemplate">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox  ItemsSource="{Binding DataContext.List2, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGrid}}}" 
                                      DisplayMemberPath="Name"  SelectedValue="{Binding ColourId}" SelectedValuePath="Id" Tag="{Binding Id}"
                                       HorizontalAlignment="Stretch" x:Name="discussTemplate" VerticalAlignment="Stretch"
                                         />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn Header="UPDown" Width="Auto">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <extToolkit:IntegerUpDown AllowSpin="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Minimum="0"
                                                  x:Name="updown"
                                                  IsEnabled="????" >

                            </extToolkit:IntegerUpDown>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>

1 个答案:

答案 0 :(得分:0)

使用ViewModel ColourId属性上的DataTrigger可以轻松完成此操作。

由于ComboBox上的SelectedValue属性已绑定,因此您可以在extToolkit上使用DataTrigger:IntegerUpDown控件,它将根据ViewModel上的ColourId值将IsEnabled设置为True / False。