【发布时间】:2011-04-06 11:05:57
【问题描述】:
我有一个绑定到我的 XAML 中的 button.IsEnabled 属性的布尔属性(在 setter 中称为 INotifyPropertyChanged)。目前我正在使用TwoWay 绑定,但这会导致问题,我只需要OneWay 绑定。我的问题是我正在使用的转换器在程序第一次启动之后不会被调用。我在设置器中放置了断点,它被称为加载,但Convert() 方法根本没有被调用。这是为什么呢?
一些代码:
public bool IsSaving
{
get
{
return _isSaving;
}
set
{
_isSaving = value;
NotifyOfPropertyChange(() => IsSaving);
}
}
和 XAML:
IsEnabled="{Binding Path=IsSaving, Mode=OneWay, Converter={StaticResource booleanToNotEnabledConverter}}"
转换器实际上只是返回!(bool)value,因此当IsSaving 为真时,按钮将被禁用。
【问题讨论】:
-
它应该可以工作,再次检查所有相关代码。您确定将其更改为 TwoWay 时它可以直接工作吗?
-
当我使用 TwoWay 时,它总是被调用
-
你能精简代码并发布代码吗?
-
这是 Silverlight 还是 WPF?我想在同一个环境下测试一下。
-
抱歉,这个特殊的项目是 Silverlight。如果可以的话,我会删除 WPF 标记。
标签: c# silverlight data-binding