Какова наилучшая практика для связывания в шаблоне MVMM xamarin.forms? - PullRequest
0 голосов
/ 15 апреля 2019

В моих предыдущих программах я всегда использовал связывание с x: name, но в этом конкретном случае я должен избегать этого

Вот мой код просмотра (HomePage.xaml)

    <ListView 
        //x:Name="MyList"
        //ItemsSource="{Binding MyList}"
        HasUnevenRows="False"
        Grid.Row="2"
        SelectionMode="None"
        RowHeight="190"
        Margin="0,0,0,20"
        SeparatorVisibility="None"
        HeightRequest="0">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <Frame OutlineColor="Accent"
                           HasShadow="True"
                           Grid.ColumnSpan="5"
                           HorizontalOptions="FillAndExpand"
                           VerticalOptions="FillAndExpand"
                           BackgroundColor="#f4f4f4" 
                           BorderColor="LightGray"
                           CornerRadius="10"
                           Margin="25,10,25,0"
                           Padding="0">
                        <Grid
                            VerticalOptions="FillAndExpand"
                            HorizontalOptions="FillAndExpand"
                            >
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="5"/>
                                <ColumnDefinition Width="40"/>
                                <ColumnDefinition Width="20"/>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="20"/>
                                <ColumnDefinition Width="5"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="13"/>
                                <RowDefinition Height="28"/>
                                <RowDefinition Height="*"/>
                                <RowDefinition Height="30"/>
                            </Grid.RowDefinitions>

                            <BoxView Color="#33A8F7" 
                                     Grid.Row="0" 
                                     Grid.ColumnSpan="6" 
                                     HorizontalOptions="FillAndExpand" 
                                     VerticalOptions="StartAndExpand"/>

                            <Image Source="service_irrig_img.png"
                                   Grid.Column="1"
                                   Grid.Row="2"
                                   Grid.RowSpan="2"
                                   Margin="0"/>

                            <Image Source="location.png"
                                   Grid.Column="2"
                                   Grid.Row="1"
                                   HorizontalOptions="Start"
                                   VerticalOptions="EndAndExpand"
                                   HeightRequest="16"
                                   WidthRequest="16"/>
                            <Label Text="irrigNET"
                                   FontFamily="{StaticResource BalooBhai}"
                                   FontSize="16"
                                   Grid.Column="3"
                                   Grid.Row="1"
                                   Grid.ColumnSpan="2"
                                   VerticalTextAlignment="Center"
                                   HorizontalTextAlignment="Start"
                                   Margin="0,8,0,0"
                                   TextColor="#262f41"/>

                            <Image Source="service_arrow.png"
                                   Grid.Column="4"
                                   Grid.Row="2"
                                   VerticalOptions="Center"
                                   HorizontalOptions="Center"
                                   HeightRequest="18"
                                   WidthRequest="18"/>

                            <Image Source="clock.png"
                                   Grid.Column="2"
                                   Grid.Row="3"
                                   HorizontalOptions="Center"
                                   VerticalOptions="Start"
                                   Margin="0,0,0,5"/>


                            <Label Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit."
                                   Grid.Column="3"
                                   Grid.Row="2"
                                   VerticalTextAlignment="Start"
                                   HorizontalOptions="FillAndExpand"
                                   VerticalOptions="FillAndExpand"
                                   TextColor="#262f41"
                                   Margin="0,10,0,0"/>
                        </Grid>
                    </Frame>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

Только для теста, в моем HomePage.cs я использовал List<string> MylistItems = new List<string> { "element1", "element2", "element3" }; MyList.ItemsSource = MylistItems; и все работало нормально, ListView заполнен на правильный путь. Но теперь Я хочу получить тот же вывод, используя паттерн MVVM, избегая x: name.

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