이전 포스팅에서 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..
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..