我试图在XAML中修改CheckBox
的可见性。我已经这样做了:
XAML摘录:
<CheckBox Content="RES"
IsChecked="{Binding Unit.Reserved}"
Name="chk_Reserved"
Visibility="{Binding Res_Visible}"
ToolTip="Gereserveerd">
</CheckBox>
字符串
.但是,在调试时,如果我转到“Live Visual Tree”,我会在属性列表中看到以下内容:
的数据
正如您所看到的,IsChecked
属性有一个绑定表达式,但Visible
属性没有,尽管这是XAML所期望的。
有没有人知道这是怎么可能的?(Visible
属性不是“bindable”,...)
首次评论后编辑:
以下是Res_Visible
属性的定义:
public class CassetteLevelViewModel:BaseViewModel
{
...
public Visibility Res_Visible { get; set; }
...
型Visibility
似乎是System.Windows.Visibility
。这是正确的吗?(我以为还有UIElement.Visibility
,还是我错了?)
Thanks in advance
2条答案
按热度按时间7qhs6swi1#
我希望我正确理解了这个问题,你用
Res_Visible
属性做了一个绑定,我怀疑你想改变可见性,但是当你从CassetteLevelViewModel
改变它时,它不起作用。要通知
View
(Xaml)ViewModel
中的属性(CassetteLevelViewModel
)的值已更改,您应该在BaseViewModel
中使用INotifyPropertyChanged
。如果您不使用,下面您可以找到您应该在
BaseViewModel
中添加的内容。字符串
OnPropertyChanged()
方法通知View属性值已更改。如果您已经使用了,您只需要按照下面的示例修改您的属性即可。
型
a14dhokn2#
经过大量的实验,我在属性的定义中找到了解决方案:
我变了:
字符串
进入:
型
现在一切都很好。