0

2 つの TemplateColumn を持つ Datagrid があります。

最初の列は Combobox で、2 番目の列は Extended IntergerUpDown コントロールを使用します

コンボ ボックスの 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>
4

1 に答える 1

0

これは、ViewModel ColourId プロパティの DataTrigger で簡単に実行できます。

ComboBox の SelectedValue プロパティは既にバインドされているため、ViewModel の ColourId 値に基づいて IsEnabled を True/False に設定する extToolkit:IntegerUpDown コントロールに DataTrigger を設定できます。

于 2012-10-26T08:26:38.560 に答える