WinUI를 손에 익힐 겸 간단하게 ToDo리스트를 만들어보기로 했다
컨트롤에는 ListBox와 ListView 두 가지가 있다는데 둘의 차이는 아직 잘 모르겠다
어차피 간단하게 연습 겸 만들 거니까 그냥(아무거나) ListBox를 사용하겠다
진짜 간단하게 ListBox에 내용 추가하기
<!-- MainWindow.xaml -->
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
<StackPanel Orientation="Horizontal">
<TextBox x:Name="Add_TextBox" Width="600" Height="70" Margin="15"/>
<Button x:Name="Add_Button" Width="120" Height="70" Click="Add_Text"/>
</StackPanel>
<ListBox x:Name="Display" VerticalAlignment="Stretch" Margin="20" />
</StackPanel>
private void Add_Text(object sender, RoutedEventArgs e) {
Display.Items.Add("내용 추가");
}
우측 상단의 허여멀건 버튼을 누를 때마다 "내용 추가"라는 글들이 하나씩 추가된다
위의 코드를 살짝 바꾸면
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal" Height="50">
<TextBox x:Name="Add_TextBox" Width="600" Height="40" Margin="10, 0, 20, 0"/>
<Button x:Name="Add_Button" Content="추가하기" Width="100" Height="40" Click="Add_Text" Margin="0, 0, 20, 0"/>
<Button x:Name="Remove_Button" Content="제거하기" Width="100" Height="40" Click="Remove_Element"/>
</StackPanel>
<ListBox x:Name="Display" Grid.Row="1" VerticalAlignment="Stretch" Margin="20" />
</Grid>
int i = 0;
private void Add_Text(object sender, RoutedEventArgs e) {
CheckBox cb = new CheckBox() { Content = "내용 " + i.ToString() };
i++;
Display.Items.Add(
//지금 생각하니 그냥 CheckBox만 추가했어도 됐는데...
new StackPanel() {
Orientation= Orientation.Horizontal,
Children= { cb }
});
}
private void Remove_Element(object sender, RoutedEventArgs e) {
Display.Items.Remove(Display.SelectedItem);
}
정말 간단하게 ListBox에 아이템을 추가하고 삭제하는 기능을 만들어봤다
그리고,
수정 및 추가할 내용
- 내용 0, 내용 1... 에서 TextBox에 입력한 내용을 추가할 수 있도록하기
- 체크박스를 클릭했을 때 내용에 밑줄이 그어지도록 하기
일단은 이정도 더 추가할 예정이다. 그때그때 봐서 좀 더 수정할 수도 있고...
'C# > WinUI3' 카테고리의 다른 글
[WinUI3] ToDo리스트 만들기 - 포기 (0) | 2023.01.26 |
---|---|
[WinUI3] ToDo리스트 만들기(2) (0) | 2023.01.24 |
Xaml에서 한글 입력 시 깨질 때 (0) | 2023.01.23 |
[WinUI3] ContentDialog 사용기 (0) | 2023.01.23 |
[WinUI3] 설치하기 (0) | 2023.01.23 |