Если вы не хотите идти по маршруту ViewModel, вы можете использовать раскадровку для этого.
Я собрал эту главную страницу:
<phone:PhoneApplicationPage
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:System="clr-namespace:System;assembly=mscorlib"
x:Class="PhoneApp1.MainPage" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="800" d:DesignWidth="480">
<phone:PhoneApplicationPage.Resources>
<Storyboard x:Name="DelayEnableButton">
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Control.IsEnabled)" Storyboard.TargetName="button">
<DiscreteObjectKeyFrame KeyTime="0:0:10">
<DiscreteObjectKeyFrame.Value>
<System:Boolean>True</System:Boolean>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</phone:PhoneApplicationPage.Resources>
<Grid x:Name="LayoutRoot" Background="Transparent">
<Button x:Name="button" Content="Button" Height="100" Margin="50" VerticalAlignment="Top" IsEnabled="False"/>
</Grid>
</phone:PhoneApplicationPage>
Важными частями являются то, чтоу кнопки есть имя, и это имя указано в определении раскадровки.Раскадровка настроена на изменение IsEnabled на True через 10 секунд.Затем в MainPage.xaml.cs я пинаю раскадровку в событии Loaded:
public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
DelayEnableButton.Begin();
}
}