0
내부에 TabControl과 3 개의 TabItem을 만들었습니다. 내 코드는 다음과 같습니다SelectionChanged에서 WPF의 TabControl과 이상한 동작
XAML (코드 숨김)
<TabControl Name="ConfigTabs" HorizontalAlignment="Left" VerticalAlignment="Top" SelectionChanged="TabControlSelectionChanged">
<TabItem Header="Allgemeines">
...
</TabItem>
<TabItem Header="Monitorbelegung">
...
</TabItem>
<TabItem Header="Produkt-Konfigurationen">
...
</TabItem>
</TabControl>
C 번호 : 나는 TabItem의를 변경할 때 의도 한대로
private void TabControlSelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.Source is TabControl && this.IsLoaded)
{
TabControl MyTabControl = (TabControl)sender;
if (MyTabControl.SelectedIndex == 0)
{
MessageBox.Show("Allgemeines");
}
else if (MyTabControl.SelectedIndex == 1)
{
MessageBox.Show("Monitor");
}
else if (MyTabControl.SelectedIndex == 2)
{
MessageBox.Show("Configs");
}
}
}
는 텍스트와 메시지 박스가 팝업됩니다. 그러나 이제 다른 항목을 클릭하면 다음 항목의 MessageBox를 가져온 후 이후의 MessageBox를 가져옵니다. 내가 그 뒤에있는 논리를 완벽하게 확신하지 못하는 곳. MessageBox를 모두 삭제해도 문제가 없지만 나중에 구현할 논리로 인해 필요합니다.
이제 질문은 "어떻게 이벤트를 두 번 발사 할 수 있습니까?";
당신이하는 뭔가를 시도 않았다
XAML :
C 번호 (코드 숨김) 당신이 스타일을 사용하면 TabItems의 변화 이벤트를 잡을 수 있습니다 'MessageBox.Show (...)'대신'Debug.WriteLine (...)'과 같은 탭을 전환하는 과정을 방해하지 않습니까? – dkozl
네 - 그 일을 처리 할 수는 있지만 이벤트 처리기에서는 MessageBox.Show 만 사용해야합니다. 이것은 TabControl의 버그처럼 들립니다. 나는 당신이) 그것을보고해야하고 b) 당신의 재료를 다른 방법으로 할 것이라고 생각합니다. (어째서 MVVM을 사용하지 않는 이유는 무엇입니까?) –
MVVM을 사용하는 방법을 알지 못하기 때문에 프로젝트를 마칠 때까지 몇 주 밖에 남지 않았으므로 큰 것을 배울 시간이 없습니다. –