【发布时间】:2018-08-14 00:38:35
【问题描述】:
我的 WPF 项目中有一个按钮,如下所示:
<Button
Grid.Column="1"
HorizontalAlignment="Left"
x:Name="Add"
IsEnabled="False"
BorderThickness="0"
Grid.Row="1" VerticalAlignment="Top"
Height="23" Width="29" Margin="10,0,0,0">
<StackPanel>
<Image Source="\Resources\Pictures\Add.png"
Width="20" Height="20"/>
</StackPanel>
</Button>
在对应的 ViewModel 中我有Add 方法和CanAdd 属性:
public bool CanAdd
{
get { return true; }
}
public void Add()
{
//some code
}
问题是当IsEnabled 属性设置为False 时,按钮消失。我知道这是因为 caliburn 微对流。如何修改此约定,以便当我将IsEnabled 设置为False 按钮禁用时,当CanAdd 为false 时,它会折叠(就像现在一样)?
【问题讨论】:
-
你确定 Caliburn.micro 有约定 IsEnabled=false 使按钮消失吗?
-
您可以使用 Visibility Property IsEnabled="False" Visibility="{Binding CanAdd,Converter={StaticResource BooleanToVisibilityConverter }}" cal:Message.Attach="[Event Click] 来填写您的需求=[Action Add]" 更简洁的方法是绑定 IsEnabled 属性,而不是对其进行硬编码。
-
@A.M:将 IsEnabled 设置为 false 不应导致 Button 消失。是什么让您认为它确实有效?
标签: wpf caliburn.micro