我的TabControl中有多個TabItems; tabItem1,tabItem2,tabItem3 ...這些是收藏已修改;枚舉操作可能不會執行
CloseableTabItem。
如果我添加在tabItem1一個節點,按下一個按鈕,使這個節點的子模式,
同一節點應該出現在tabItem2一個按鈕;這樣
tabItem2-Header = nodeName和nodeName = tabItem1-Header。
如果我從tabitem2中的節點按下按鈕,tabitem1應該集中。如果我關閉
tabItem1並按下同一按鈕tabItem1應重新加載(這一點在
SubGraphButton_Click)。
您是否看到此代碼存在問題?
private void ChildNode_Click(object sender, RoutedEventArgs args)
{
System.Windows.Controls.Button button = (System.Windows.Controls.Button)sender;
Node node = Part.FindAncestor<Node>(button);
MyNodeData nodeData = node.Data as MyNodeData;
foreach (TabItem item in tabControl.Items)
{
if (nodeData.Text == item.Header.ToString())
{
item.Focus();
}
else if (nodeData.Text != item.Header.ToString())
{
SubGraphButton_Click(sender, args);
}
}
}
private void SubGraphButton_Click(object sender, RoutedEventArgs args)
{
string activeDirectory = @"X:\SubGraph\";
string[] files = Directory.GetFiles(activeDirectory);
foreach (string fileName in files)
{
FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
System.Windows.Controls.Button button = (System.Windows.Controls.Button)sender;
Node node = Part.FindAncestor<Node>(button);
MyNodeData nodeData = node.Data as MyNodeData;
if (node != null)
{
if (nodeData.Text + ".epk" == fileName.Substring(12, fileName.Length - 12) && !tabControl.Items.Contains(tabItem1))
{
tabControl.Items.Add(tabItem1);
tabItem1.Focus();
var model = new MyGraphLinksModel();
model.Modifiable = true;
model.HasUndoManager = true;
activateDiagram(myDiagram1);
activeDiagram.Model = model;
model.Name = fileName.Substring(12, fileName.Length - 12);
model.Name = model.Name.Substring(0, model.Name.Length - 4);
tabItem1.Header = model.Name;
activeDiagram.PartManager.UpdatesRouteDataPoints = false;
StreamReader reader = new StreamReader(file);
string contents = reader.ReadToEnd();
XElement root = XElement.Parse(contents);
activeDiagram.LayoutCompleted += LoadLinkRoutes;
model.Load<MyNodeData, MyLinkData>(root, "MyNodeData", "MyLinkData");
}
}
}
你不應該使用像方法這樣的事件。重構代碼並使用SubGraphButton_Click中的所有代碼創建一個新方法。那麼你可以從你喜歡的任何地方使用這種方法。 – 2012-07-19 14:54:03
thanx它幫助我,它的工作 – User1979 2012-07-19 15:50:43