728x90
UserControl끼리 값을 주고 받을 때, 데이터는 넘어가는데 반영이 안되서 한참 헤맸다.
앞전 게시글에 이어서 UserControl간 Event로 연결을 해 줬다.
[C# WPF] 상단 메뉴바 만들기 (설정, 파일...)
private void Click(object sender, RoutedEventArgs e) { MessageBox.Show("ㅋ"); } 보통 화면 상단에 있는 메뉴바 만들기는 Menu 태그를 이용해 만들 수 있다. ToolBar, ToggleButton 등등.. 한참 헤멨다..
sm-lee2026210.tistory.com
메뉴 - 파일생성을 누르면 파일 이름을 입력하는 창 (Window) 가 뜨고, 거기서 이름을 입력하면 Tab이 추가되도록 하고싶었다.
즉 파일은 Tab / TabAddView(파일 이름 입력하는 창) / TopMenu 이렇게 3개임
MainWindow
public MainWindow()
{
InitializeComponent();
TopMenuBar.AddTabRequested += (projectName) =>
{
TabBar.AddNewTab(projectName);
};
}
public partial class TabAddView : Window
{
public string EnteredProjectName { get; private set; }
...
private string TabAdd()
{
string enteredProjectName = ProjectNameTextBox.Text;
if (enteredProjectName == "")
{
MessageBox.Show("프로젝트명을 입력해주세요.");
}
else
{
EnteredProjectName = enteredProjectName;
Close(); // 창 닫기
}
return enteredProjectName;
}
public partial class Tab : UserControl
{
public Tab()
{
InitializeComponent();
}
public void InitializeTopMenu(TopMenu topMenu)
{
topMenu.AddTabRequested += (projectName) =>
{
AddNewTab(projectName);
};
}
public void AddNewTab(string projectName)
{
TabItem newTabItem = new TabItem();
newTabItem.Header = projectName;
TabControl.Items.Add(newTabItem);
TabControl.SelectedItem = newTabItem;
}
참고 :
[WPF] MVVM 을 이용하는 유저컨트롤 간의 데이터 처리
인터넷 찾아보면 WPF MVVM 패턴을 구현한 거보면 대부분 이해하기 쉽다. 근데 그 예제들은 이해하기 쉬우라고 쉽게 만들어 놓은거지만 실제 사용 할려면 여러가지가 짬뽕되서 사용해야한다는거지
creon.tistory.com
728x90
'C# > C# WPF 실무' 카테고리의 다른 글
[C# WPF] TabControl에 탭 닫기 아이콘 넣기 (0) | 2023.10.11 |
---|---|
[C# WPF] 상단 메뉴바 만들기 (설정, 파일...) (1) | 2023.10.11 |
[C# WPF] 정규식을 이용하여 string에 특수문자 있는지 판단하기 (0) | 2023.10.10 |
[C# WPF] 윈도우 스타일(WindowStyle) None 상태에서 창 그림자 설정하기 (0) | 2023.10.06 |
[C# WPF] TreeView 새로고침 시 확장 상태 불러오기 (0) | 2023.10.05 |