2016-12-19 8 views
2

Я борюсь с отображением CheckBoxField в Infragistics XamDataGrid как togglebutton. Кажется, что все работает нормально, пока я не нажму эти кнопки для переключения - это не освежает соответствующее значение в viewmodel. С другой стороны, когда я изменяю значение привязки в другом месте системы, ChecBoxField обновляется. Если у кого-то была идея, как сделать это правильно, это сделает меня счастливым.Преобразование CheckBoxField в ToggleButton в Infragistics XamDataGrid

Мой код:

[...] 
    <UserControl.Resources> 
     <ResourceDictionary> 
[...] 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate TargetType="{x:Type igWpf:CellValuePresenter}"> 
          <ToggleButton Content="{TemplateBinding Value, Converter={StaticResource Converter}}" IsChecked="{TemplateBinding Value}"/> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 
     </ResourceDictionary> 
    </UserControl.Resources> 

[...] 
     <igWpf:XamDataGrid DataSource="{Binding Oscillators}" AutoFit="true" Grid.Column="1" HorizontalAlignment="Left" 
          GroupByAreaLocation="None" 
          IsNestedDataDisplayEnabled="False" 
          cal:Message.Attach="[Event AssigningFieldLayoutToItem] = [Action AssignFieldLayout($source)] "> 
      <igWpf:XamDataGrid.FieldLayouts> 
      <igWpf:FieldLayout> 
       <igWpf:FieldLayout.Fields> 
        <igWpf:TextField IsReadOnly="True" Name="Name"></igWpf:TextField> 
        <igWpf:CheckBoxField Name="OnOff" Label="On/Off"> 
         <igWpf:Field.Settings> 
           <igWpf:FieldSettings CellValuePresenterStyle="{StaticResource ToggleButtonCellStyle}"></igWpf:FieldSettings> 
         </igWpf:Field.Settings> 
        </igWpf:CheckBoxField> 
        [...] 
       </igWpf:NumericField> 
       </igWpf:FieldLayout.Fields> 
      </igWpf:FieldLayout> 
      </igWpf:XamDataGrid.FieldLayouts> 
      [...] 
     </igWpf:XamDataGrid> 

ответ

0

нормально, я получил его. Это правильное связывание, работающее в обоих направлениях:

   <Setter.Value> 
        <ControlTemplate TargetType="{x:Type igWpf:CellValuePresenter}"> 
         <ToggleButton Content="{TemplateBinding Value, Converter={StaticResource Converter}}" IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value}"/> 
        </ControlTemplate> 
       </Setter.Value>