2015-10-19 14 views
6

Tôi đang cố gắng lấy Biểu mẫu Xamarin để hiển thị danh sách trong danh sách. Tôi đã nhìn thấy những người khác nói rằng một ListView lồng nhau trong một ListView không được hỗ trợ. Tôi đã cố gắng để thêm một điều khiển bên trong ListView, và ràng buộc danh sách lồng nhau để kiểm soát, nhưng điều đó luôn luôn treo ứng dụng của tôi bất cứ khi nào tôi cố gắng liên kết với nó.Tôi làm cách nào để hiển thị danh sách các mục được lồng trong biểu mẫu Xamarin?

Tôi cũng thấy rằng một số người đề xuất sử dụng nhóm. Nhóm làm việc DOES, tuy nhiên các vấn đề tôi đã tìm thấy với điều đó là tôi không thể gõ vào phần nhóm. Ngoài ra các nhóm sẽ không cập nhật trong thời gian thực (đây là một yêu cầu).

Đối với kết quả cuối cùng, tôi muốn một cái gì đó đơn giản như:

  • ApartmentName1
  • Địa chỉ
  • quản lý số điện thoại
  •           thuê 1, số điện thoại
  •           thuê 2, Số điện thoại
  •           thuê 3, Số điện thoại
  • ApartmentName2
  • Địa chỉ
  • Số Giám đốc Điện thoại
  •           thuê 1, số điện thoại
  •           thuê 2, Số điện thoại
  •           thuê 3, Số điện thoại

Dưới đây là một đối tượng ví dụ mà tôi muốn hiển thị trong dự án Hình thức Xamarin tôi.

public class Apartment 
{ 
    public string ApartmentName { get; set; } 
    public string Address { get; set; } 
    public string ManagerPhoneNumber { get; set; } 
    public List<Tenant> Tenants { get; set; } 
} 

public class Tenant 
{ 
    public string FullName { get; set; } 
    public string PhoneNumber { get; set; } 
    public DateTime ContractExpireDate { get; set; } 
} 

Dưới đây là XAML Tôi đã cố gắng để có được để làm việc

<ContentView> 
    <StackLayout> 
    <ListView x:Name="apartmentListView" HasUnevenRows="True"> 
     <ListView.ItemTemplate> 
     <DataTemplate> 
      <ViewCell> 
      <ViewCell.View> 
       <StackLayout VerticalOptions="StartAndExpand"> 
       <StackLayout Orientation="Horizontal" BackgroundColor="Gray"> 
        <Label HorizontalOptions="StartAndExpand" Text="{Binding ApartmentName}" /> 
        <Label HorizontalOptions="End" Text="{Binding Address}" /> 
       </StackLayout> 
       <Label Text="{Binding ManagerPhoneNumber}" /> 
       <control:TenantViewTemplate Tenants="{Binding Tenants}" /> 
       </StackLayout> 
      </ViewCell.View> 
      </ViewCell> 
     </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
    </StackLayout> 
</ContentView> 

Tôi chỉ cố gắng để hiển thị một danh sách, trong đó có chứa một danh sách. Tôi mở cho mọi đề xuất về cách thực hiện điều này thông qua Biểu mẫu Xamarin.

Trả lời

1

Tôi muốn bỏ qua XAML và chỉ đặt nó theo cách bạn muốn trong mã.

Sử dụng StackLayouts và \ hoặc Lưới và không dựa vào thuật toán ListViews bán kỳ diệu. Nhiều lần bây giờ tôi đã bắt đầu với một ListView chỉ để có được một điểm sau đó tôi cạo nó đi với một ForEachLoop. Bạn có thể làm bất cứ điều gì trong mã bạn có thể làm trong XAML và cuối cùng bạn sẽ có thể hạnh phúc hơn.

+1

là câu trả lời hoặc đề xuất? –

+1

Tôi không tin điều đó. Viết giao diện người dùng của bạn trong XAML là cách tiếp cận tốt nhất, nếu bạn bắt một số sách sẽ thấy các khuyến nghị. –

+0

Đọc sách bạn đời. Nó không thay đổi nó. Cuối cùng Cho đến khi có WYSIWYG Editor XAML không có lợi thế hơn mã thuần túy. 1. Nó hoạt động chậm hơn. 2. Phát triển không có trình gỡ lỗi và ít intellisense. 3. tiết của nó sau đó mã giả định bạn giữ mã của bạn sạch sẽ. Các tình huống như thế này xuất hiện mọi lúc và nếu OP đã sử dụng C# để bắt đầu, điều này không bao giờ là vấn đề. – David

4

Nếu tôi định hiển thị một danh sách các mục không giống nhau, tôi có thể sử dụng một TableView thay vì một ListView. TableViews không phải là databound, vì vậy bạn phải xây dựng chúng theo cách thủ công, nhưng chúng cho phép bạn linh hoạt có các loại ô khác nhau tùy thuộc vào dữ liệu được hiển thị trong mỗi hàng.

Nếu bạn muốn kết hợp với ListView được nhóm, bạn có thể tạo chế độ xem tiêu đề nhóm tùy chỉnh chứa nút (hoặc phần tử khác) có thể phản hồi các cử chỉ nhấn.

+0

câu hỏi rõ ràng nhưng có mùi như UWP (hoặc WPF) xaml. chúng tôi có cùng trải nghiệm xấu. Tôi không có thời gian để mất để thử mà không có xaml, tôi nên thử manualy ràng buộc trẻ em listview? –

Các vấn đề liên quan