我是xamarin的新手,所以還在學習它的所有功能和限制。我很想知道,你是否可以根據外鍵從一個串列視圖的選擇重定向到另一個包含串列視圖的頁面。在這個例子中,外鍵是CompanyID。謝謝!
模型:
公共類Company
{
public int ID { get; set; }
public string Name { get; set; }
}
public class WellGroup
{
public int ID { get; set; }
public string Name { get; set; }
public int CompanyID { get; set; }
}
xaml:
<ListView x:Name="CompaniesCollection"
ItemsSource="{Binding CompaniesCollection}"
SelectionMode="Single"
HasUnevenRows="True"
ItemSelected="Companies_Selection">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="10" x:DataType="model:Company" >
<Label Text="{Binding Name}"
字體大小="大"
VerticalOptions="Center"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
uj5u.com熱心網友回復:
你可以通過索引來顯示公司的ID和名稱,根據具體的公司ID。
第二頁。顯示CompanyID
Xaml:
<ListView x:Name="CompaniesCollection"
ItemsSource="{Binding CompaniesCollection}"
SelectionMode="Single"
HasUnevenRows="True"
ItemSelected="Companies_Selection">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="10" x:DataType="model:WellGroup" >
<Label Text="{Binding CompanyID}"
字體大小="大"
VerticalOptions="Center"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
后面的代碼:
公共部分類Page2 : ContentPage { 公共的Page2() { InitializeComponent(); this.BindingContext = new WellGroupViewModel(); } private async void Companies_Selection(object sender, SelectedItemChangedEventArgs e) { var index = e.SelectedItemIndex; await Navigation.PushAsync(new Page3(index))。 } } 公眾類公司 { public int ID { get; set; } public string Name { get; set; } } public class WellGroup { public List<Company> Companies { get; set; } public int CompanyID { get; set; } } public class WellGroupViewModel { public List<WellGroup> CompaniesCollection { get; set; } 公共WellGroupViewModel() { var C1 = new WellGroup(); C1.Companies = new List<Company>() { new Company(){ ID=1, Name="A"}, new Company(){ ID=1, Name="B"}, new Company(){ ID=1, Name="C"}, 新公司(){ ID=1, Name="D"}. }; C1.CompanyID = 111; var C2 = new WellGroup(); C2.Companies = new List<Company>() { new Company(){ ID=2, Name="A"}, new Company(){ ID=2, Name="B"}, new Company(){ ID=2, Name="C"}, 新公司(){ ID=2, 名稱="D"}, 新公司(){ ID=2, 名稱="D"}. } ; C2.CompanyID = 222; var C3 = new WellGroup(); C3.Companies = new List<Company>() { new Company(){ ID=3, Name="A"}, new Company(){ ID=3, Name="B"}, new Company(){ ID=3, Name="C"}, 新公司(){ ID=3, 名字="D"}. }; C3.CompanyID = 333; CompaniesCollection = new List<WellGroup> { C1, C2, C3 }; } }
第三頁:根據CompanyID顯示ID、名稱
Xaml:
<ListView x:Name="CompaniesCollection"
ItemsSource="{Binding List}"
SelectionMode="Single"
HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="10" Orientation="Horizontal" >
<Label Text="{Binding ID}"
VerticalOptions="Center"/>
<Label Text="{系結的名稱}"
VerticalOptions="Center"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
后面的代碼:
公共部分類Page3 : ContentPage { private List<Company> _companies; public List<Company> List { get { return _companies; } 設定 { _companies = value; OnPropertyChanged("List"); } } public Page3(int index) { InitializeComponent(); List = new List<Company>(); List = ((new WellGroupViewModel()).CompaniesCollection[index]).Companies。 this.BindingContext = this; } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/315718.html
標籤:
