基于父

时间:2016-09-22 16:40:47

标签: c# wpf radio-button devexpress

我有一个单选按钮控件和一些相关控件,我希望根据选择的单选按钮启用或禁用它们。

要执行此操作,我正在尝试使用IsEnabled绑定LayoutGroup上的{Binding IsSelected, ElementName=radioButtonControlName}。它不起作用。

我的XAML看起来像这样

<Grid>
    <dxlc:LayoutGroup Orientation="Horizontal">
        <dxe:ListBoxEdit ShowBorder="False" StyleSettings="{dxe:RadioListBoxEditStyleSettings}" HorizontalContentAlignment="Stretch">
            <dxe:ListBoxEditItem Name="radioButtonA" IsSelected="{Binding IsASelected, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}">
                <dxlc:LayoutGroup>
                    <dxlc:LayoutItem Label="A">
                        <dxlc:LayoutGroup Name="aLayoutGroup" IsEnabled="{Binding IsSelected, ElementName=radioButtonA}">
                            <dxlc:LayoutItem Label="Date A">
                                <dxe:DateEdit EditValue="{Binding DateA, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"/>
                            </dxlc:LayoutItem>
                            <dxlc:LayoutItem Label="Text A">
                                <dxe:TextEdit EditValue="{Binding TextA, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"/>
                            </dxlc:LayoutItem>
                        </dxlc:LayoutGroup>
                    </dxlc:LayoutItem>
                </dxlc:LayoutGroup>
            </dxe:ListBoxEditItem>
            <dxe:ListBoxEditItem Name="radioButtonB" IsSelected="{Binding IsASelected, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}">
                <dxlc:LayoutGroup>
                    <dxlc:LayoutItem Label="B">
                        <dxlc:LayoutGroup Name="bLayoutGroup" IsEnabled="{Binding IsSelected, ElementName=radioButtonB}">
                            <dxlc:LayoutItem Label="Date B">
                                <dxe:DateEdit EditValue="{Binding DateB, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"/>
                            </dxlc:LayoutItem>
                            <dxlc:LayoutItem Label="Text B">
                                <dxe:TextEdit EditValue="{Binding TextB, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"/>
                            </dxlc:LayoutItem>
                        </dxlc:LayoutGroup>
                    </dxlc:LayoutItem>
                </dxlc:LayoutGroup>
            </dxe:ListBoxEditItem>
        </dxe:ListBoxEdit>
    </dxlc:LayoutGroup>
</Grid>

顺便说一下,如果我将LayoutGroup移到ListBoxEdit控件之外,它会按预期工作。那么问题是我不知道如何将单选按钮与从属控件对齐。如果有人可以帮助我正确地调整这些,那么我认为这个解决方案也会有效。

1 个答案:

答案 0 :(得分:0)

由于我没有动态生成单选按钮,因此我决定不使用ListBoxEdit而只是将RadioButton元素放在我的布局中。我需要将IsSelected绑定更改为IsChecked,但除此之外,它的工作原理大致相同。