private void SetButtonsEnabled()
{
if (this.enabledStates != null && this.enabledStates.Count > 0)
{
foreach (var item in enabledStates)
{
var selectedButton = this.Buttons.SingleOrDefault(element => element == item.Key);
if (item.Value != null)
{
selectedButton.SetValue(BindableApplicationBarButton.IsEnabledProperty, item.Value);
}
else
{
if (selectedButton.Command != null)
{
selectedButton.IsEnabled = selectedButton.Command.CanExecute(selectedButton.CommandParameter);
}
else
{
selectedButton.IsEnabled = true;
}
}
}
enabledStates = new Dictionary<BindableApplicationBarButton, BindingExpression>();
}
}