从另一个页面获取控件的值

时间:2013-05-01 08:04:55

标签: c# xaml wpf-controls

Windows 8应用程序C#

我在页面上有几个TextBox和ComboBox控件。在另一个页面上,我想获取这些控件的值以再次使用它们(例如cboTeam.SelectedValue)。

是否有正确的方法可以在其他页面中获取这些值?

编辑:

XAML代码:

<ComboBox ItemTemplate="{StaticResource Test}"
          ItemsSource="{Binding test}"
          x:Name="cboTeam1"
          Grid.Column="2" Grid.Row="4"
          Margin="0,13,0,12"/>

获取ItemsSource:

cboTeam1.ItemsSource = ItemRepository.getJPLItems();

在我的存储库中:

public static List<TeamItem> getJPLItems()
{
    if (JPLItems.Count == 0)
    {
        JPLItems.Add(new TeamItem() { Id = 1, Description = "Anderlecht", Image = "Jpl/Anderlecht.png", ItemType = ItemType.JupilerProLeague });
        JPLItems.Add(new TeamItem() { Id = 1, Description = "Beerschot", Image = "Jpl/Beerschot.png", ItemType = ItemType.JupilerProLeague });
        JPLItems.Add(new TeamItem() { Id = 1, Description = "Cercle Brugge", Image = "Jpl/Cercle Brugge.png", ItemType = ItemType.JupilerProLeague });
    }
}

所以我的cboTeam1充满了:“Anderlecht”,“Beerschot”,“Cercle Brugge”。

2 个答案:

答案 0 :(得分:1)

Combobox具有SelectedIndex属性。通过此属性,您可以在另一页中获取选定的值。我在我的MVVM中使用它。只需将此属性绑定到我ViewModel中的某个公共属性,然后我就可以在其他地方使用它。此外,这种约束可能是双向的。

答案 1 :(得分:0)

解决了问题:

导航到另一页时,我传递了值:

  var selected = cboTeam1.SelectedValue as TeamItem;
  getInfo gI = new SportsBetting.Scoreandinvite.getInfo() { Team1 = selected.Description};

  Frame.Navigate(typeof(Scoreandinvite), gI);

在另一页上我创建了一个类:

    public class getInfo
    {
        public string Team1
        {
            get;
            set;
        }
    }

在OnNavigatedTo方法中:

  protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        getInfo gI = (getInfo)e.Parameter;
        Team1.Text = gI.Team1;
    }