Как сделать так, чтобы кнопка постоянно отключалась? - PullRequest
0 голосов
/ 14 декабря 2011

Я разрабатываю веб-часть Silverlight для Sharepoint 2010. У меня есть кнопка в сетке данных следующим образом

<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;
}

Я хочу, чтобы кнопка отключалась при нажатии кнопки, которая происходит при нажатии кнопки. Но когда я нажимаю на эту кнопку отключения, она включается. Я не хочу включать кнопку, как только она отключена. Как это сделать? Можете ли вы сказать мне, где я иду не так? Или вы можете предоставить мне какой-либо код, чтобы я мог решить вышеуказанную проблему?

Ответы [ 3 ]

0 голосов
/ 14 декабря 2011

Я думаю, что вы можете достичь этого, добавив привязку свойства Button * IsEnable к логическому свойству в ModelView.На MarkBilledButton_Click установите для этого свойства значение FALSE, и даже если обновление произошло из-за перекачки внутреннего фреймворка WPF или из-за некоторого программирования (которое здесь не видно), свойство IsEnable кнопкибудет читаться с ModelView.

Надеюсь, это поможет.

0 голосов
/ 14 декабря 2011

Может быть, вы могли бы поместить код в оператор 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;
}

Возможно, было бы лучшее решение, но я подумал, что это быстро и легко. Я действительно не знаю, почему кнопка ведет себя так.

0 голосов
/ 14 декабря 2011

Поскольку вы хотите, чтобы кнопка была кликабельной после ее «отключения», вам, вероятно, не следует отключать кнопку, так как это сделает ее неактивной.Похоже, вы хотите, чтобы она выглядела отключенной, но все еще включенной.

Я предлагаю изменить стиль кнопки, когда пользователь щелкает ее, а не включать / отключать, чтобы кнопка выгляделачувствует себя отключенным, но все еще сообщает о событиях щелчка.

Например, вы можете изменить цвет фона / переднего плана кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...