Xamarin形成如何将Entry值从一个类传递到另一个类List?

时间:2016-09-22 12:20:39

标签: c# list xaml listview xamarin.forms

我想从我将值插入另一个页面列表的页面传递插入的数字值,并使用新值更新ListView。

这是我的AddCardPage xaml:

<Entry x:Name="CardNr" Text="" Completed="Entry_Completed" Keyboard="Numeric" />

这里是AddCardPage xaml.cs方法:

void Entry_Completed(object sender, EventArgs e)
{
    var text = ((Entry)sender).Text; //cast sender to access the properties of the Entry
    new Cards { Number = Convert.ToInt64(text) };
}

这是我的CardsPage类,我已经在其中声明了一些数据:

public CardsPage()
{
    InitializeComponent();
    base.Title = "Cards";
    List<Cards> cardsList = new List<Cards>()
    {
        new Cards { Number=1234567891234567, Name="dsffds M", ExpDate="17/08", Security=123 },
        new Cards { Number=9934567813535135, Name="Jason T", ExpDate="16/08", Security=132 },
        new Cards { Number=4468468484864567, Name="Carl S", ExpDate="17/01", Security=987 },
    };
    listView.ItemsSource = cardsList;  
        AddCard.GestureRecognizers.Add(new TapGestureRecognizer
        {
            Command = new Command(() => OnLabelClicked()),
        });       
}
    private void OnLabelClicked()
    {
        Navigation.PushAsync(new AddCardPage());
    }

和带有ListView的CardsPage xaml:

<ListView x:Name="listView">
  <ListView.Footer> 
    <StackLayout Padding="5,5" Orientation="Horizontal" >
      <Label x:Name="AddCard" Text="Add new Card" FontSize="15" />
    </StackLayout>
  </ListView.Footer>
  <ListView.ItemTemplate>
    <DataTemplate>
      <ViewCell>
          <Label Text="{Binding Number}" FontSize="15" />
      </ViewCell>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

如何将插入的Entry值从页面传递到另一个类List并更新ListView内容?

1 个答案:

答案 0 :(得分:0)

在您想要获取值的页面中,更改它的构造函数以接受该值并从调用页面传递该值。

例如:

class Page1
{
  private async void OnSomeEvent()
  {
     await Navigation.PushAsync(new Page2("xyz"));
  }
}

class Page2
{
  public Page2(string myValue)
  {
  }
}