Metro App OnNavigatedTo以其他方法设置文本框值

时间:2012-09-11 22:17:19

标签: windows microsoft-metro

我正在关注我为开发Metro应用而购买的一本书。出于某种原因,我无法在OnNavigatedTo方法之外的方法中设置文本框的文本值。这是本书提供的代码:

 protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        //passed in the view model
        viewModel = e.Parameter as ViewModel;
        this.DataContext = viewModel;

        viewModel.PropertyChanged += (sender, eventArgs) =>
        {
            if (eventArgs.PropertyName == "SelectedItemIndex")
            {
                if (viewModel.SelectedIndex == -1)
                {
                    SetItemDetail(null);
                }
                else
                {
                    SetItemDetail(viewModel.GroceryList[viewModel.SelectedIndex]);
                }
            }
            SetItemDetail(viewModel.GroceryList[viewModel.SelectedIndex]);
        };
    }

    private void SetItemDetail(GroceryItem item)
    {
        ItemDetailName.Text = "test"; //(item == null) ? "" : item.Name;
        ItemDetailQuantity.Text = "test"; //(item == null) ? "" : item.Quantity.ToString();

        //if (item != null)
        //{
        //    ItemDetailStore.SelectedItem = item.Store;
        //}
        //else
        //{
        //    ItemDetailStore.SelectedIndex = -1;
        //}
    }

我在set item detail方法中注释了部分,但是当我单击它时,我仍然无法设置文本框的值(这应该是行为)。我使用了断点并且文本框的属性已经设置,但是它没有显示在屏幕上。

感谢。

0 个答案:

没有答案