Как сделать несколько значений в BindingContext в xamarin ContentPage - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть приложение xamarin, в котором мне нужно передать два объекта в файл .cs при событии нажатия кнопки.

У меня есть два ListView и кнопка внутри 2-го элемента Listview.Оба ListViews будут загружены динамически на основе JSON.Теперь проблема заключается в том, что мне нужно отправить источник данных Parent ListView и второй источник данных ListView в событии нажатия кнопки.В настоящее время я могу отправить только один, используя BindingContext, но мне нужно отправить два или более объектов в файл .cs.

<ListView  x:Name="StaffListMaster_List" RowHeight="150"> 
<ListView.ItemTemplate>` 
<ListView x:Name="Staff_Record" ItemsSource="{Binding Path=detailsobj}">` 
<ListView.ItemTemplate>`
<DataTemplate>                                             
<ViewCell>  
<StackLayout  Orientation="Horizontal" >
<Button Clicked="OnActionSheetCancelDeleteClicked" BorderRadius="0"  BindingContext ="{Binding item}" Text="{Binding item[6]}"/>`

Я хочу получить источник данных StaffListMaster_List и источник данных Staff_Record внутри OnActionSheetCancelDeleteClicked (отправитель объекта, EventArgsд) {} `

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Если вы хотите использовать вложенный ListView внутри Listview, мы можем сделать это с ListView.GroupHeaderTemplate.

ParentItems class:

public class ParentItems : ObservableCollection<ChildItems>
{
    public string ID { get; set; }
    public string Title { get; set; }


    public ParentItems(List<ChildItems> list) : base(list)
    {

    }
}

Класс ChilsItems:

public class ChildItems
{
    public string ChildTitle { get; set; }
    public string Description { get; set; }
}

Xaml:

 <ListView HasUnevenRows="True" x:Name="listView" IsGroupingEnabled = "True">
            <ListView.GroupHeaderTemplate>
                <DataTemplate>
                    <ViewCell Height="40">
                        <StackLayout Orientation="Horizontal"
                             BackgroundColor="#3498DB"
                             VerticalOptions="FillAndExpand">
                            <Label Text="{Binding ID}"
                           VerticalOptions="Center" />
                            <Label Text="   "/>
                            <Label Text="{Binding Title}"
                           VerticalOptions="Center" />

                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.GroupHeaderTemplate>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextCell Text="{Binding ChildTitle}" Detail="{Binding Description}"></TextCell>
                </DataTemplate>
            </ListView.ItemTemplate>

        </ListView>

Результат:

enter image description here

Я загрузил на GitHub, вы можете скачать папку ListViewBindng для справки на GitHub.https://github.com/WendyZang/Test

0 голосов
/ 26 сентября 2019

Прежде всего, не делай этого.это не то, для чего нужны BindingContexts, во-вторых, если вы реагируете на событие в своем коде, вы можете просто получить доступ к обоим источникам данных, используя имя ListView, т.е. Staff_Record.ItemSource

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...