It sounds as though the DataContext of your view is not set to an instance of the view model. There are several ways you can do this.
The easiest is simply to put the following code in the Loaded event of the view:
private void PhoneApplicationPage_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
DataContext = new ViewModel();
}
The preferred way is to define a view model locator in your application project. Create an instance of your view model.
public class ViewModelLocator
{
private readonly ViewModel _viewModel = new ViewModel();
public ViewModel Main
{
get { return _viewModel; }
}
}
Create your view model locator in the App.XAML:
<Application xmlns:vm="clr-namespace:groovd.client.phone.ViewModels" >
<Application.Resources>
<ResourceDictionary>
<vm:ViewModelLocator xmlns:vm="clr-namespace:MyApp.ViewModels" x:Key="Locator" />
</ResourceDictionary>
</Application.Resources>
</Application>
Then get the property from the view model locator in the page:
<phone:PhoneApplicationPage
DataContext="{Binding Main, Source={StaticResource Locator}}">
</phone:PhoneApplicationPage>