2012-10-25 65 views
0

我有两个Datagrid Template列。 1)第一列是组合框 2)第二列与扩展IntergerUpDown控件WPF DataGrid元素其他DataGridTemplateColumn的名称

我需要根据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" 
                Maximum="{Binding ???}" > 

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

回答

0

只是绑定到你的itemsrow的值?所以如果ColourID是由您的组合框设置的itemsrow的属性。您可以将最大绑定到ColourID

<extToolkit:IntegerUpDown AllowSpin="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Minimum="0" 
          Maximum="{Binding ColourId}" > 
</extToolkit:IntegerUpDown> 
+0

+1,也不要忘记执行'INotifyPropertyChanged'在您的项目类(在它宣布'ColourId'属性)。 –

+0

CombBox中的属性“TAG”中存在一个值,该值必须设置为最大的IntergerUpDown控件。 – Sanjaybxl

相关问题