gpt4 book ai didi

c# - 试图让 IsEnabled 绑定(bind)到依赖属性

转载 作者:太空宇宙 更新时间:2023-11-03 19:33:23 24 4
gpt4 key购买 nike

知道这段代码哪里出了问题。我希望在选择关联的 RadioButton 时启用 TextBox,然后在选择不同的单选按钮时我希望它是 Enabled=False。我创建了一个 ProxyMode 依赖属性,并更改了 getter 以根据是否选择代理来获取它的 bool 值。似乎不起作用...有什么想法吗?

// Proxy Host Name
public string Proxy
{
get { return (string)GetValue(ProxyProperty); }
set { SetValue(ProxyProperty, value); }
}

public static readonly DependencyProperty ProxyProperty =
DependencyProperty.Register("Proxy", typeof(string), typeof(ConfigWindowViewModel), new UIPropertyMetadata("[e.g. proxy.mycompany.com]"));

public bool ProxyMode
{
get { return Proxy == "Proxy"; }
set { SetValue(ProxyModeProperty, value); }
}

public static readonly DependencyProperty ProxyModeProperty =
DependencyProperty.Register("ProxyMode", typeof(bool), typeof(ConfigWindowViewModel));

和 XAML

<StackPanel Grid.Column="0" Margin="2">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<RadioButton IsChecked="{Binding Path=Mode, Converter={StaticResource enumBooleanConverter}, ConverterParameter=Proxy}"
VerticalAlignment="Center"
Padding="2,0,10,0">Proxy
</RadioButton>
<TextBox Text="{Binding Path=Proxy}"
IsEnabled="{Binding Path=ProxyMode}"
Width="Auto"
Name="ProxyHostTextBox"
VerticalAlignment="Center"
MinWidth="150"
/>
</StackPanel>
<RadioButton IsChecked="{Binding Path=Mode, Converter={StaticResource enumBooleanConverter}, ConverterParameter=Direct}">Direct</RadioButton>
</StackPanel>

最佳答案

根据是否选中代理 RadioButton 启用/禁用文本框的最简单方法是将 TextBox 的 IsEnabled 属性直接绑定(bind)到代理 RadioButton 的 IsChecked 属性。假设代理 RadioButton 被命名为“proxy”:

<TextBox Text="{Binding Path=Proxy}" IsEnabled="{Binding ElementName=proxy, Path=IsChecked}"/>

如果您打算链接您的 RadioButton 控件以便一次只能选择一个,则需要将它们的 GroupName 属性都设置为某个值(所有链接的 RadioButton 控件应该相同)。

如果您还有其他问题,请告诉我。

关于c# - 试图让 IsEnabled 绑定(bind)到依赖属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3681773/

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