2012-10-26 83 views
0

我有Datagrid與兩個TemplateColumn。WPF Datagrid TemplateColumn控件啓用和禁用

第一列是一個組合框和第二列與擴展IntergerUpDown控制

我需要啓用/禁用基礎上,COMBOX框的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> 

回答

0

這可以在您的視圖模型ColourId財產DataTrigger輕鬆完成。

由於ComboBox上的SelectedValue屬性已綁定,因此可以在extToolkit上使用DataTrigger:IntegerUpDown控件,該控件根據ViewModel上的ColourId值將IsEnabled設置爲True/False。