[英]Weird silverlight binding issue
我有一个奇怪的问题。 我有两个堆栈面板,每个堆栈面板都有一个按钮,两个堆栈面板的数据上下文相同,按钮上的IsEnabled属性也设置为相同的属性。 然而,一个按钮被禁用,另一个按钮被启用:
StackPanel#1(启用):
<StackPanel Orientation="Horizontal" Grid.Row="2" Grid.Column="1" Height="23" DataContext="{Binding ElementName=LayoutRoot, Path=DataContext}">
<TextBox Grid.Row="0" Grid.Column="1" Height="23" Width="220" Name="txtBarcode"></TextBox>
<Button IsEnabled="{Binding CanAdd}" cal:Click.Command="{Binding AddBarcodeCommand}" Width="40" Content=". . ." Margin="5,0"></Button>
</StackPanel>
StackPanel#2(已禁用):
<StackPanel Orientation="Horizontal" Grid.Row="3" Grid.Column="1" HorizontalAlignment="Right" DataContext="{Binding ElementName=LayoutRoot, Path=DataContext}" >
<Button HorizontalAlignment="Right" cal:Click.Command="{Binding ElementName=LayoutRoot, Path=DataContext.SaveCommand}" Grid.Row="3" Grid.Column="1" Height="30" Content="Create Batch" Width="130"></Button>
<Button IsEnabled="{Binding CanAdd}" Height="30" Content="Apply" Width="130" HorizontalAlignment="Right" Margin="5,0"></Button>
</StackPanel>
我没有在输出窗口中看到任何数据绑定错误。 有什么东西我错过了吗?
这可能是因为你在第一个Button中的命令:
cal:Click.Command="{Binding AddBarcodeCommand}
如果该命令具有为其定义的CanExecute方法,则在该方法返回false时将禁用该按钮。
它也可能适用于SaveCommand
我会删除IsEnabled
绑定并让CanExecute
执行它的操作,因为它是命令点,
但您也可以修复 CanExecute逻辑或删除它并让IsEnabled绑定工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.