如何在C#中使用对象ID属性获取对象值

时间:2014-05-24 17:15:31

标签: c# visual-studio windows-phone-8 data-binding observablecollection

这是我在windows phone 8应用程序开发方面的第一次体验。 我有一个问题,我在下面提到,请你帮我解决一下。

我通过Activities.xaml中的数据绑定显示来自ActivityViewModel的数据 当用户点击活动项时,我将ActivityID发送到ActivityDetails.xaml。 我试图通过使用ActivityID调用我创建为AccountAction的对象。

如何在ActivityDetails.xaml.cs中使用ActivityID获取对象值(ActivityImage,ActivityName,ActivityAmont ...)?

ActivityViewModel:

public class ActivityViewModel
{
    public ObservableCollection<AccountAction> ActivityItemCollection { get; set; }

    public ActivityViewModel()
    {
        ActivityItemCollection = new ObservableCollection<AccountAction>();


        ActivityItemCollection.Add(new AccountAction()
        {
            ActivityID = "SP0001",
            ActivityImage = "/Images/Logos/e-bay.png"
            ActivityName = "E-Bay",
            ActivityAmount = "100,00",
            ActivityDate = "Today",
            ActivityHour = "11:49"
        });

       .
       .
       .

    }
}

Activities.xaml.cs

 private void StackPanel_Tap(object sender, System.Windows.Input.GestureEventArgs e)
    {
        var _ActivityID = Convert.ToString(((StackPanel)sender).Tag);
        NavigationService.Navigate(new Uri("/ActivityDetails.xaml?ActivityID=" + _ActivityID, UriKind.Relative));
    }

ActivityDetails.xaml.cs

 protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);

        string ActivityID = "";

        if (NavigationContext.QueryString.TryGetValue("ActivityID", out ActivityID))
        {
            ReferanceNumber.Text = ActivityID;

        }

    }

1 个答案:

答案 0 :(得分:1)

 protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        string ActivityID;
        if (e.IsNavigationInitiator  && this.NavigationContext.QueryString.TryGetValue("ActivityID", out ActivityID))
        {
          ActivityID= int.Parse(ActivityID);

        }
    }

修改

您可以使用linq

获取与activityid相关的数据
AccountAction result = ActivityItemCollection.FirstOrDefault(act=>act.ActivityID == ActivityID);

然后你可以获得像result.ActivityName

这样的对象值