gpt4 book ai didi

silverlight - DataForm 中的 ComboBox IsEnabled 绑定(bind)不起作用

转载 作者:行者123 更新时间:2023-12-01 04:10:27 24 4
gpt4 key购买 nike

我有几个组合框 在数据表单中 并试图让它禁用某些组合框,直到选择特定的组合框。为此,我创建了一个名为 CanEditCombo 的通知属性。在绑定(bind)到 DataContext 并像这样配置我的 ComboBoxes 的类中:

<ComboBox ... IsEnabled="{Binding CanEditCombo, Mode=OneWay}" />
CanEditCombo最初是错误的,但是当 DataForm 首次加载时,我的 ComboBoxes 是可编辑的。

如果我应用相同的 IsEnabled将语法绑定(bind)到我的 DataForm 中的 TextBox 它按预期工作:起初禁用但启用一次 CanEditCombo变成真的。

这是 XAML 的示例 block :
<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 的 IsEnabled在 ComboBox 上方的标记中将属性设置为 False 仍然是可编辑的。

我该如何拥有 ComboBox 的 IsEnable当 ComboBox 在 DataForm 中时通过绑定(bind)语法设置属性?

最佳答案

不确定您是否已经找到了答案,但实际上有一个非常简单的解决方案:在 DataField 而不是 ComboBox(或任何其他 DataField 嵌套控件)上设置 IsEnabled。

<toolkit:DataField IsEnabled="{Binding CanEditCombo, Mode=OneWay}">
<ComboBox ItemsSource="{Binding ProjectOptions, Mode=OneWay}"
SelectedValue="{Binding Options, Mode=TwoWay}"
DisplayMemberPath="Value"
SelectedValuePath="Key" />
</toolkit:DataField>

我不确定 DataField 在内部到底做了什么,但 IsEnabled 属性永远不会在嵌套控件上被访问。

关于silverlight - DataForm 中的 ComboBox IsEnabled 绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6463393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com