views:

45

answers:

2

I have started a a new project (to refactor some code), and just can't work out why I keep getting "Can't find page /Index" error. The code works fine until I use an add method (on any collection type). So I don't think there is a problem with the navigation, but an issue with my IndexViewModel class.

public partial class Index : Page { private IndexViewModel _vm;

    public Index()
    {
        InitializeComponent();
        _vm = new IndexViewModel();

...

public class IndexViewModel //: ViewModelBase
    {                                         
        public SortableCollectionView Rows {get;set;}          

        public IndexViewModel()
        {
            // generate some dummy data
            Random rand = new Random();
            for (int i = 0; i < 200; i++)
            {
                Row row = new Row();
                row["stuff"] = s_names[rand.Next(s_names.Length)];

                **Rows.Add(row);**

            }
        }
A: 

Looks like you never new up your Rows variable.

Rows = new SortableCollectionView();

To get to the actual error you can use this trick copied from my answer on another question:

To see what the issue is you need to make one change to your MainPage.xaml.cs:

// If an error occurs during navigation, show an error window
private void ContentFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
{
    Exception ex = e.Exception;

    while (ex.InnerException != null)
    {
        ex = ex.InnerException;
    }

    e.Handled = true;
    ChildWindow errorWin = new ErrorWindow(ex);
    errorWin.Show();
}

Once you've made that change when you start the application you should see the exception instead of the page where the exception occurred.

Bryant
lol, man what a noob! Yea problem solved, I have spent all morning staring at my code. Need more sleep obviously.
Grayson Mitchell
A: 

You need

Rows = new SortableCollectionView();

somewhere in your code.

Phillip Ngan