【发布时间】:2016-10-06 23:13:26
【问题描述】:
我的一个可见性绑定有问题。 在我的应用程序中,我几乎在同一个地方有一个文本框和一个组合框。 它们是重叠的,所以我在背景中有两个变量用于它们的可见性。它们位于数据网格中,因此将从列表中提供可见性源。
我的 Combobox 的绑定工作得很好,但我的一个 Textbox 没有
这是我的代码:
<TextBox x:Name="Textvalue"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Width="150"
BorderBrush="#FF383F55"
BorderThickness="0"
Foreground="White"
Background="#FF232734"
Text="{Binding Path=Value, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding Path=IsPath}"/>
<ComboBox x:Name="Combobox"
VerticalAlignment="Center"
Foreground="White"
Margin="3,3,3,3"
Height="23"
ItemsSource="{Binding Path=ValueArray}"
SelectedValue="{Binding Path=Value, UpdateSourceTrigger=PropertyChanged}"
Style="{DynamicResource ComboBoxStyle1}"
Visibility="{Binding Path=IsCombobox}"/>
这些都是我的 Get 属性(两者都只有 Get Proberty):
public System.Windows.Visibility isPath
{
get
{
return _IsPath;
}
}
public System.Windows.Visibility IsCombobox
{
get
{
return _IsCombobox;
}
}
我希望你能帮助我,因为我不知道这里出了什么问题:/ 提前致谢
我尝试过的:
试图将绑定更改为不同的变量。
【问题讨论】:
-
Vievmodel 绑定正确吗?您是否尝试将断点放在
IsCombobox属性中并查看是否到达? -
使用 Visibility="{Binding IsCombobox}" 代替 Visibility="{Binding Path=IsCombobox}"
-
代码中的属性名称有一个小写的“i”
public System.Windows.Visibility isPath,而 XAML 在绑定IsPath中有一个大写的 I。 -
我同意@CS,但我还要补充一点,您是否查看过所提供的boolean-to-visibility converter。允许您简单地绑定到 VM 上的
bool并让转换器负责将其修改为Visibility,这意味着您不必担心我在查看 VM 中的特定项目时看到的内容。跨度> -
这正是“CS”所说的。非常令人失望的是我自己无法弄清楚:/非常感谢! @StephenRoss 不,我没有研究转换器,但我会的。谢谢你。有没有办法在评论中接受“C S”解决方案作为答案?
标签: c# xaml binding combobox textbox