๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
C#

๐Ÿ—‚๏ธ WPF TreeView์— ํŒŒ์ผ/ํด๋” ๊ตฌ์กฐ ์—ฐ๋™ํ•˜๊ธฐ

by samie 2025. 4. 26.
WPF TreeView ํŒŒ์ผ ์‹œ์Šคํ…œ ์—ฐ๋™

๐Ÿ—‚๏ธ WPF TreeView์— ํŒŒ์ผ/ํด๋” ๊ตฌ์กฐ ์—ฐ๋™ํ•˜๊ธฐ

์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” TreeView๋ฅผ Windows์˜ ์‹ค์ œ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.
ํด๋” ๊ตฌ์กฐ ํƒ์ƒ‰๊ธฐ์™€ ๊ฐ™์€ UI๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ๋ชฉ์ฐจ

  • 1. TreeView ๊ธฐ๋ณธ ๊ตฌ์„ฑ
  • 2. ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
  • 3. ํด๋” ๋”๋ธ” ํด๋ฆญ ์‹œ ํ•˜์œ„ ํ•ญ๋ชฉ ๋กœ๋“œ
  • 4. ์•„์ด์ฝ˜ ๋ฐ ์ •๋ฆฌ

1. TreeView ๊ธฐ๋ณธ ๊ตฌ์„ฑ

<TreeView x:Name="FileTree" SelectedItemChanged="FileTree_SelectedItemChanged">
</TreeView>

2. ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

private void LoadDirectory(string path, TreeViewItem parent)
{
    try
    {
        foreach (var dir in Directory.GetDirectories(path))
        {
            var item = new TreeViewItem { Header = System.IO.Path.GetFileName(dir), Tag = dir };
            item.Items.Add(null); // ๋”๋ฏธ ์•„์ดํ…œ์œผ๋กœ ํ™•์žฅ ํ‘œ์‹œ
            item.Expanded += Folder_Expanded;
            parent.Items.Add(item);
        }

        foreach (var file in Directory.GetFiles(path))
        {
            var item = new TreeViewItem { Header = System.IO.Path.GetFileName(file), Tag = file };
            parent.Items.Add(item);
        }
    }
    catch { }
}

3. ํด๋” ๋”๋ธ” ํด๋ฆญ ์‹œ ํ•˜์œ„ ํ•ญ๋ชฉ ๋กœ๋“œ

private void Folder_Expanded(object sender, RoutedEventArgs e)
{
    var item = sender as TreeViewItem;
    if (item == null || item.Items.Count != 1 || item.Items[0] != null) return;

    item.Items.Clear();
    LoadDirectory(item.Tag.ToString(), item);
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    var root = new TreeViewItem { Header = "C:", Tag = "C:\\" };
    root.Items.Add(null);
    root.Expanded += Folder_Expanded;
    FileTree.Items.Add(root);
}

4. ์•„์ด์ฝ˜ ๋ฐ ์ •๋ฆฌ

  • ํŒŒ์ผ/ํด๋”์— ๋”ฐ๋ผ ์ด๋ฏธ์ง€ ์•„์ด์ฝ˜ ์„ค์ •
  • ๋”๋ธ” ํด๋ฆญ ๋Œ€์‹  ์„ ํƒ ์‹œ ์ž๋™ ๋กœ๋“œ๋„ ๊ฐ€๋Šฅ
  • ํŒŒ์ผ ํด๋ฆญ ์‹œ ํŒŒ์ผ ์—ด๊ธฐ, ๊ฒฝ๋กœ ๋ณต์‚ฌ ๊ธฐ๋Šฅ ์—ฐ๋™ ๊ฐ€๋Šฅ

โœ… ๋งˆ๋ฌด๋ฆฌ

์ด์ œ WPF TreeView๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ PC ํด๋”์™€ ํŒŒ์ผ์„ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ ํŽธ์—์„œ๋Š” TreeView์—์„œ ์„ ํƒํ•œ ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜ ๋ณต์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ๊นŒ์ง€ ์—ฐ๊ฒฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!