전체 글

· WPF
이전 포스팅에서 Codebehind를 통해 MVVM을 유지하며 PasswordBox의 Password 속성을 Binding 하는 방법을 소개했었는데 Codebehind를 사용하지 않고 ViewModel에 Binding 하는 방법도 공유합니다. Attached Property를 사용합니다. ✅ PasswordBox DataBinding (Attached Property) Attached Property를 사용해서 PasswordBox에 Password속성의 값에 접근할 수 있는 추가 속성을 부여하고 추가 속성에 ViewModel과 Binding 하여 ViewModel에서 사용할 수 있게 합니다. PasswordExtends.cs (Attached Property) public class PasswordEx..
이전 포스팅에서는 폴더 정보가 표시될 TreeView에 임의의 데이터를 넣었습니다. 이번에는 실제 Windows 폴더 정보를 TreeView에 채우겠습니다. 드라이브 정보를 구하고 각 드라이브의 폴더를 재귀함수로 돌면서 다중 트리를 생성합니다. 그리고 TreeView와 DataBinding 된 ViewModel을 통해 TreeView에 폴더가 표시됩니다. 자료구조: 다중 트리 (Multi-Tree) 자료구조의 트리란,부모 노드 밑에 여러 자식 노드가 연결되고, 자식 노드 각각에 다시 자식 노드가 연결되는 재귀적 형태의 자료구조다. 단, 자식 노드의 자식이 부모로 연결되는 경우는 보통 endtime-co-kr.tistory.com ✅ TreeView에 실제 폴더 보여주기 GetAllDirectoryFrom..
· WPF
MVVM패턴에서 View에서 발생한 DataGrid의 더블클릭 이벤트를 DataGrid.InputBindings으로 받을 수 있습니다. 하지만 더블클릭 이벤트의 발생만 알 수 있고 선택한 DataGridRow를 ViewModel로 전달할 수는 없습니다. 더블클릭 시 선택한 DataGridRow를 ViewModel에 전달하는 예제코드입니다. ✅ Behavior를 사용한 DataGrid 더블 클릭 이벤트 NuGet 패키지 관리자를 사용하여 Microsoft.Xaml.Behaviors.Wpf 패키지를 프로젝트에 추가해야 합니다. UIHelper.cs namespace MVVM { public static class UIHelpers { public static T TryFindParent(DependencyO..
· 기타
아래 소개할 git 명령어들은 git remote에서 변경된 부분을 가져오는 명령어들입니다. 제 경우에는 보통 최초에 clone으로 복제하고 로컬에서 작업 후 remote에 변경이 있는지 fetch로 확인 pull로 로컬과 병합 후 push 하여 remote 업데이트하는 순으로 진행합니다. ✅ git 가져오는 명령어 clone git clone [url] url의 git remote로부터 복제를 합니다. 이때 git init -> git remote add [url] -> git pull origin master와 같은 결과가 생성됩니다. fetch git fetch remote의 변경사항에 대한 이력을 가져옵니다. 소스를 가져오지 않으며 당연히 local 저장소와 merge 하지 않습니다. 누군가가 p..
· 기타
Winform에서 WPF Control을 사용하는 방법입니다. .NetFramework 때는 도구상자에서 WPF 상호 운용성 / ElementHost 를 사용해서 WPF를 사용할 수 있었는데 .NET으로 업그레이드되면서 없어진 것 같습니다. Visual Studio버전 때문일 수도 있습니다. 현재 사용하는 Visual Studio 2022 Community / .NET6.0 환경에서 Winform 내에 WPF UserConrol을 사용하는 방법입니다. ✅ ElementHost 사내 프로젝트 중 Winform으로 만들어진 기존 프로젝트에 WPF로 개발한 것을 연동해야합니다. Winform으로 만들어진 것을 WPF로 컨버전하려니 시간이 너무 많이 소요될 것 같아 찾아보니 ElementHost라는 컨트롤을 사..
좌측에 폴더가 표시될 TreeView에 임의로 값을 채워보겠습니다. 나중에는 폴더 정보를 읽어서 TreeView에 Binding 해줘야겠지요. 우선 ViewModel에서 Tree를 만들고 ViewModel:Tree를 TreeView에 Binding 해보겠습니다. TreeView는 HierarchicalDataTemplate이라는 조금 피곤한 Template을 사용해야 합니다. 이 Template은 TreeView, Menu에서 주로 사용하는데 부모-자식으로 이루어진 데이터구조를 처리합니다. ✅ TreeView에 Data 표시하기 다중 트리 우선 다중트리를 만들어서 트리에 값이 제대로 들어가는지 확인했습니다. [C#] - 자료구조: 다중 트리 (Multi-Tree) 자료구조: 다중 트리 (Multi-Tre..
YUNYUN3915
윤윤, DEV