【发布时间】:2011-06-24 04:31:43
【问题描述】:
我有几个 ComboBoxes 在一个 DataForm 中,我正在尝试使用它,以便在选择特定 ComboBox 之前禁用某些 ComboBoxes。为此,我在绑定到 DataContext 的类中创建了一个名为 CanEditCombo 的通知属性,并像这样配置了我的 ComboBoxes:
<ComboBox ... IsEnabled="{Binding CanEditCombo, Mode=OneWay}" />
CanEditCombo 最初为 false,但当 DataForm 首次加载时,我的 ComboBox 是可编辑的。
如果我将相同的 IsEnabled 绑定语法应用到我的 DataForm 中的 TextBox,它会按预期工作:起初禁用,但一旦 CanEditCombo 变为 true 就启用。
这是 XAML 的示例块:
<toolkit:DataForm CurrentItem="{Binding NewProject, Mode=TwoWay}" x:Name="dfNewProject" CommandButtonsVisibility="None">
<toolkit:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
...
<toolkit:DataField>
<ComboBox ItemsSource="{Binding ProjectOptions, Mode=OneWay}"
SelectedValue="{Binding Options, Mode=TwoWay}"
DisplayMemberPath="Value"
SelectedValuePath="Key"
IsEnabled="{Binding CanEditCombo, Mode=OneWay}" />
</toolkit:DataField>
...
</StackPanel>
</DataTemplate>
</toolkit:DataForm.EditTemplate>
</toolkit:DataForm>
更重要的是,即使我在 ComboBox 上方的标记中将 ComboBox 的 IsEnabled 属性硬编码为 False,仍然是可编辑的。
当 ComboBox 在 DataForm 中时,如何通过绑定语法设置 ComboBox 的 IsEnable 属性?
【问题讨论】:
标签: silverlight combobox dataform