๐๏ธ 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์์ ์ ํํ ํ์ผ์ ์ด๊ฑฐ๋ ๋ณต์ฌํ๋ ๊ธฐ๋ฅ๊น์ง ์ฐ๊ฒฐํด๋ณด๊ฒ ์ต๋๋ค!
'C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐๏ธ WPF TreeView์ ํ์ผ/ํด๋ ๊ตฌ์กฐ ์ฐ๋ํ๊ธฐ (0) | 2025.04.26 |
---|---|
๐๏ธ WPF TreeView์ ํ์ผ/ํด๋ ๊ตฌ์กฐ ์ฐ๋ํ๊ธฐ (0) | 2025.04.25 |
๐ WPF TreeView ๋๋๊ทธ ์ค ๋๋กญ์ผ๋ก ๋ ธ๋ ์ด๋ ๊ตฌํ (0) | 2025.04.24 |
๐ WPF TreeView์์ ContextMenu๋ก ๋ ธ๋ ์กฐ์ ๊ธฐ๋ฅ ๊ตฌํ (0) | 2025.04.23 |
โ WPF TreeView ์ฒดํฌ๋ฐ์ค ๋ ธ๋ ๊ตฌํ ๋ฐ ์๋ ์ฒดํฌ (0) | 2025.04.22 |