Xamarin에서 CardView 선택

Nov 17 2020

내 Xamarin에는 두 개의 CardView(https://github.com/tiger4589/Xamarin.Forms-CardView) 별도의 Grid.Column.

내가 원하는 것은 Button을 활성화하는 CardView (한 번에 하나씩)를 선택하는 것입니다.

어떻게하면 이룰 수 있습니까?

CardView 용 .xml 코드

<Grid Grid.Column="0">
    <cardView:CardView>
        <cardView:CardView.CardViewContent>
            <StackLayout>
                <Label 
                    Text="PIN"
                    FontSize="18"
                    HorizontalTextAlignment="Center">
                </Label>
            </StackLayout>
        </cardView:CardView.CardViewContent>
    </cardView:CardView>
</Grid>

<Grid Grid.Column="1">
    <cardView:CardView>
        <cardView:CardView.CardViewContent>
            <StackLayout>
                <Label 
                    Text="QR Scan"
                    FontSize="18"
                    HorizontalTextAlignment="Center">
                </Label>
            </StackLayout>
        </cardView:CardView.CardViewContent>
    </cardView:CardView>
</Grid>

Button 용 .xml 코드

<Button
    x:Name="FormButton"
    IsEnabled="False"
    TextColor="#4DABFE"
    Text="Submit">
</Button>

CollectionView 업데이트

<StackLayout>
    <Frame >
        <CollectionView ItemsSource="{Binding .}"
            SelectionMode="Single">
            <CollectionView.ItemTemplate>
                <DataTemplate>
                    <StackLayout Orientation="Horizontal">
                        <Label Text="Tokyo"
                               FontSize="20"
                               TextColor="Orange"
                   VerticalOptions="Center" />
                    </StackLayout>
                </DataTemplate>
            </CollectionView.ItemTemplate>
        </CollectionView>
    </Frame>
</StackLayout>

답변

1 RonakShethia Nov 17 2020 at 14:48

귀하의 collectionview는 다음과 같습니다

 <CollectionView x:Name="MyCollection"
        SelectionMode="Single">
        <CollectionView.ItemTemplate>
            <DataTemplate>
                <StackLayout Orientation="Horizontal">
                    <Label Text="{Binding Title}"
                           FontSize="20"
                           TextColor="{Binding ItemColor}"
               VerticalOptions="Center" />
                </StackLayout>
            </DataTemplate>
        </CollectionView.ItemTemplate>
    </CollectionView>

이제 모델을 생성해야합니다. 다음과 같은 속성을 가질 MyDataModel

class MyDataModel
        {
         public int ItemId{ get; set; }
         public string Title { get; set; }
         public string ItemColor { get; set; }
        }

이제 .cs 파일의 목록을 초기화해야합니다. 또한이 뷰 뷰 모델을 수행 할 수 있지만 귀하의 경우에는 .cs를 사용하므로 생성자에서 다음과 같이 보일 것입니다.

var myList = new List<MyDataModel>();

Loop your XmlData List
eg. XmlDataList.ForEach((item)=>{ myList.Add(new MyDataModel{Title = item.properyinxml 
 })});

MyCollection.ItemSource = myList;