[英]How to make the button disable permanently?
我正在为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;
}
我希望按钮单击事件发生时使按钮禁用。 但是,当我单击该禁用按钮时,它将被启用。 禁用按钮后,我不想启用它。 这个怎么做? 您能告诉我我要去哪里了吗? 还是可以请您提供任何代码以便我解决上述问题?
由于您希望按钮在“禁用”之后可以单击,因此您可能不应该禁用按钮,因为那样会使按钮不可单击。 似乎您想使它看起来已禁用但仍处于启用状态。
我的建议是,您在用户单击按钮时修改按钮的样式,而不是启用/禁用它,以使按钮看起来和感觉都被禁用,但仍报告单击事件。
例如,您可以更改按钮的背景/前景色。
我想你可以通过引入巴顿的结合达到这一IsEnable
你的财产的布尔属性ModelView
。 在MarkBilledButton_Click
,将该属性设置为FALSE
,即使由于内部WPF框架消息泵送或某些编程(在此处不可见)而刷新控件时,也将从ModelView
读取按钮的IsEnable
属性。
希望这可以帮助。
也许您可以将代码放入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;
}
可能会有更好的解决方案,但这是我想到的快速简便的方法。 我真的不知道为什么按钮会像这样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.