如何使按钮永久禁用
本文关键字:何使 按钮 | 更新日期: 2023-09-27 18:17:53
我正在为Sharepoint 2010开发一个Silverlight web部件。我在数据网格中有一个按钮,如下所示
<sdk:DataGridTemplateColumn Width="80" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button x:Name="MarkBilledButton" Content="Mark Billed" VerticalAlignment="Center" HorizontalAlignment="Center" HorizontalContentAlignment="Center" Click="MarkBilledButton_Click" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
private void MarkBilledButton_Click(object sender, RoutedEventArgs e)
{
Button btn = sender as Button;
//string buttonContent = btn.Content.ToString();
MedwaiverTimeLog timeLogObj = btn.DataContext as MedwaiverTimeLog;
MedwaiverViewModel MedwaiverViewModelObj = new MedwaiverViewModel();
MedwaiverViewModelObj.ChangeBillingStatus(timeLogObj.ListItemId, "Billed");
btn.IsEnabled = false;
}
我想让按钮禁用按钮点击,这是发生在按钮点击事件。但当我点击禁用按钮时,它就被启用了。我不想启用按钮,一旦它被禁用。如何做到这一点?你能告诉我哪里做错了吗?或者你能提供给我任何代码以便我解决以上问题吗?
我认为你可以通过将Button的IsEnable
属性绑定到你的ModelView
中的布尔属性来实现这一点。在MarkBilledButton_Click
上,将该属性设置为FALSE
,即使控件刷新发生,由于内部WPF框架消息泵送,或由于一些编程(这里不可见),按钮的IsEnable
属性将从ModelView
读取。
既然你想让按钮在"禁用"之后可以点击,你可能不应该禁用按钮,因为这会使它不可点击。似乎你想让它看起来是禁用的,但仍然是启用的。
我的建议是当用户单击按钮时修改按钮的样式,而不是启用/禁用它,这样按钮看起来和感觉禁用,但仍然报告单击事件。
例如,您可以更改按钮的背景色/前景色。
也许您可以将代码放入IF语句中?
IF ( btn.IsEnabled = True )
{
Button btn = sender as Button;
//string buttonContent = btn.Content.ToString();
MedwaiverTimeLog timeLogObj = btn.DataContext as MedwaiverTimeLog;
MedwaiverViewModel MedwaiverViewModelObj = new MedwaiverViewModel();
MedwaiverViewModelObj.ChangeBillingStatus(timeLogObj.ListItemId, "Billed");
btn.IsEnabled = false;
}
可能有一个更好的解决方案,但这是我想到的一些快速和简单的东西。我真的不知道为什么按钮是那样的