C#/WinUI3

[WinUI3] ToDo리스트 만들기(1)

말하는 닭 2023. 1. 24. 03:17

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