프로그래밍

자마린 - 이중바인딩은 실패. GroupHeader 동적 생성 바인딩...

이전 질문글이였던 "이중 바인딩을 하고 싶다!"는 결론적으로 실패하여... 다른 길을 찾고자 합니다.

 

--- 이전 소스 ---

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<StackLayout Padding="24,24,24,40" Spacing="32" BindableLayout.ItemsSource="{Binding GRPItems}">
    <BindableLayout.ItemTemplate>
        <DataTemplate>
            <StackLayout Orientation="Vertical">
                <Label x:Name="CroupHeader" Text="{x:Binding Item1, Mode=TwoWay, UpdateSourceEventName=PropertyChanged}" FontFamily="NotoSansBold" FontSize="18" TextColor="#222222" Margin="0,0,0,1"/>
                <CollectionView ItemsSource="{x:Binding Item2">
                    <CollectionView.ItemTemplate>
                        <DataTemplate>
                            <Label x:Name="MenuName" Text="{x:Binding Item2, Mode=TwoWay, UpdateSourceEventName=PropertyChanged}"
                                   FontFamily="NotoSansMedium" FontSize="16" TextColor="#222222">
                                <Label.GestureRecognizers>
                                    <TapGestureRecognizer Command="{Binding Source={RelativeSource AncestorType={x:Type vm:MenuViewModel}}, Path=MenuCommand}" CommandParameter="{x:Binding Item1}"/>
                                </Label.GestureRecognizers>
                            </Label>
                        </DataTemplate>
                    </CollectionView.ItemTemplate>
                </CollectionView>
            </StackLayout>
        </DataTemplate>
    </BindableLayout.ItemTemplate>
</StackLayout>
cs

 

 

 

1
public ObservableCollection<Tuple<string, ObservableCollection<Tuple<stringstring>>>> GRPItems;
cs

 

 

모바일 UI에 대해 쥐뿔도 모르는 내가 "이렇게 하면 되겠지!?"라는 망상에 어떻게든 해보려고 했지만

안되는건 안되는거라는 걸 알고 포기했습니다.

 

 

listview_styling_groupheader.png

(구글에서 아무거나 퍼온 예시 이미지입니다.)

 

위 예시 이미지 처럼 각 헤더들의 제목이 있고 해당 헤더에 해당하는 메뉴 버튼들을 모두 동적으로 만드는게 목표입니다...

인터넷 예시들을 보면 모두 헤더는 하드코딩 식으로 직접 만들고,

헤더 아래의 메뉴들만 CollectionView 혹은 ListView로 바인딩해서 동적으로 만들어주고 있습니다.

 

하지만 저는 헤더의 갯수가 몇개인지 알 수 없습니다. 데이터는 DB에 있으니까요.

따라서 헤더도 동적으로 만들어줘야 하고 각각의 헤더에 해당하는 메뉴들도 몇 개인지 알 수 없으니 동적으로 생성해주기 위해

바인딩을 해줘야 합니다.

 

mvvm 구조에서 만들고 있고, 이왕이면 동적 생성을 비하인드 코드가 아니라 xaml쪽에서 바인딩으로 해결하고 싶습니다.

 

 

ㅜㅜ...

 

 

 

 

 

 

 

 

6개의 댓글

2023.07.26

mvvm이라고해서 코드 비하인드를 안쓰는게 아님. mvvm의 최대 장점 그러니까 가장큰 목표는 테스트임. UI기능만 하는거라면 굳이 Viewmodel에서 처리할필요가 없음. 해외에 강의많은데... 왜 안보는겨...

 

스택레이아웃의 Visible property를 hidden으로 해놓고 클릭이벤트를 엮어줘서 Visible property 를 hidden에서 visible로 바꿔주면 됨. 굉장히 간단함. Prism이라서 ViewModel에서 커맨드만 엮어주면 끝남.

0
2023.07.26
@좋소사장

솔직히 내가 자마린 강의를 안 보는건 이번 플젝 끝나면 쓸일이 없을꺼 같아서 자마린 공부할 시간에

내 공부를 하고 싶어서 그런건 맞음...

그리고 지금 말한건 처음에 그룹명,메뉴들을 만들고 메뉴명들은 IsVisible=false로 해놨다가

클릭하면 해당 그룹의 메뉴들만 true로 바꾸라는 얘기잖아?

이것도 생각해 봤는데 사용자가 누른 그룹의 정보를 가지고 거기에 해당하는 메뉴들만 알겠는데...

댓글 쓰다가 생각났네

람다식으로 해당 그룹명 밑에 버튼들 만들기 해서 되는지 해봐야겠다!

0
2023.07.26
@집에가게해줘

나는 반대라구 생각해 강의보면서 공부해서 빠르게 프로젝트 마무리지어야 내 공부할 시간이 늘어난다 생각함.

 

ㅇㅇ 맞음 true로만 바꿔주면 됨. 이게 xaml에서 하는 가장 빠른방법임. 람다는왜...? prism이면 command code snippet 까지 제공되자나 그거써 그게 젤빠름

0
2023.07.26
@좋소사장

자마린 쓸 일 많을 수도 있다는 얘기는 안 하네...?ㅋㅋㅋㅋㅋ

0
2023.07.26
@집에가게해줘

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ.....

0
2023.07.26
@좋소사장

한국은 자마린은.... ㅎㅎ

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5719 [프로그래밍] 하이브리드 웹뷰기반 앱은 rn이 정석이야? 3 잠적자 0 21 시간 전 165
5718 [프로그래밍] c# webview2 도움요청함.. 7 carpediem 0 1 일 전 120
5717 [프로그래밍] 현업 개발자형들 맥씀? 9 이또히로부미 0 1 일 전 219
5716 [프로그래밍] libtorch에서 cuda 안불러와지는거 도움! 2 Hakat 0 2 일 전 125
5715 [프로그래밍] 뭔가 게시판이 애매해서 그런데 gis 잘아는 사람? 1 하늘늑대 0 3 일 전 165
5714 [프로그래밍] 컴포즈가 프리뷰랑 폰에서 다르게 동작해요 1 집에가게해줘 0 3 일 전 118
5713 [프로그래밍] 난바보다) 크로미움 램사용량 문제 일단 해결 2 ye 0 5 일 전 284
5712 [프로그래밍] k8s DNS 이슈는 해결이 안되나보다. 잉텔 0 5 일 전 171
5711 [프로그래밍] 분노) 진짜 유튜브 구글 패악질 토나오네 씨발 17 ye 0 7 일 전 770
5710 [프로그래밍] 프론트엔드 공부하려는데 언어 추천좀 7 스트리플 0 7 일 전 352
5709 [프로그래밍] 객체지향 뽕에 취하지마라 8 69746974 2 8 일 전 409
5708 [프로그래밍] 요즘 앱개발 인력시장 어떰..3년차 2 센치해요 0 11 일 전 388
5707 [프로그래밍] 컴포즈 Box 컴포넌트가 안 나와... 1 집에가게해줘 0 13 일 전 148
5706 [프로그래밍] 아 ssl 적용햇는데 개정신없네 9 넌또화나있네 0 13 일 전 305
5705 [프로그래밍] 패스트 캠퍼스 <---- 얘내는 가격 인상 원툴임? 5 조강현 0 16 일 전 398
5704 [프로그래밍] 클라가 파이썬 셀레니움같은거 써서 클릭하고 그러는걸 감지 ... 5 리옴므 0 17 일 전 266
5703 [프로그래밍] leetcode 50일 달성 1 JimmyMcGill 1 17 일 전 237
5702 [프로그래밍] 그냥 개인공부용 git 만들건데 5 년째재수강 0 17 일 전 336
5701 [프로그래밍] html 자바스크립트 질문 19 책걸이 0 18 일 전 370
5700 [프로그래밍] 아니 시바 이게 무슨일이야 4 인간지표 0 19 일 전 380