Конвертировать CheckBoxField в ToggleButton в области инфраструктуры XamDataGrid

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

Мой код:

[...]
    <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>

1 ответ

Решение

Ладно, я понял. Это правильное связывание, работающее в обоих направлениях:

                <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>
Другие вопросы по тегам