안녕하세요 몇 가지 탭 버튼 닫기 기능에 대한 그물 주위를 둘러 봤지만 모든 그 솔루션은 몇 가지 복잡한 eventhandler 있었고, 나는 그것을 시도하고 간단하게 유지하고 싶었지만 좋은 코드 윤리가 깨졌을 수도 있습니다 그러니이 방법을 검토하고 잘못된 점을 알려주십시오.제발이 방법을 비판하십시오
public void AddCloseItem(string header, object content){
//Create tabitem with header and content
StackPanel headerPanel = new StackPanel() { Orientation = Orientation.Horizontal, Height = 14};
headerPanel.Children.Add(new TextBlock() { Text = header });
Button closeBtn = new Button() { Content = new Image() { Source = new BitmapImage(new Uri("images/cross.png", UriKind.Relative)) }, Margin = new Thickness() { Left = 10 } };
headerPanel.Children.Add(closeBtn);
TabItem newTabItem = new TabItem() { Header = headerPanel, Content = content };
//Add close button functionality
closeBtn.Tag = newTabItem;
closeBtn.Click += new RoutedEventHandler(closeBtn_Click);
//Add item to list
this.Add(newTabItem);
}
void closeBtn_Click(object sender, RoutedEventArgs e)
{
this.Remove((TabItem)((Button)sender).Tag);
}
그래서 버튼이 난 그냥 내 ObservableCollection에에서 TabItem의 제거를 클릭하고, UI는 적절하게 업데이트 될 때 나는 다음 btn.Tag 속성에 TabItem에 저장되어 일을하고 있어요.
너무 많은 메모리를 사용하여 Tag 속성을 Tag 속성에 저장하고 있습니까?
안녕하세요. 얘기하고있는 언어/플랫폼을 가리키는 태그를 추가하고 싶습니까? –
WPF C# – KroaX
감사합니다 - 그 마음에 유지할 것입니다 – Jakob