2009-12-14 81 views
0

我在主窗口中的tabcontrol中的tabitems內有許多usercontrols。一個用戶控制每個tabitem都在一個窗口內。UserControls,TabControl,窗口混淆

在其中一個控件(在其中一個tabitems內)執行某些代碼後,我想要啓用/禁用其他tabitems。

我該怎麼辦?

回答

1

通常你會用邏輯的模型對象,讓你有事件'執行'會改變模型(通過方法調用),然後模型會更新它的內部狀態,這將反映在DependencyProperties中,您將通過Xaml綁定您的UI。

+0

同意。在主ViewModel「Tab1Enabled」中使用一個屬性並將觸發器綁定到它。 – adrianm 2009-12-14 07:24:24

+0

您能否詳細說明一下?你會如何將觸發器綁定到它? – baron 2009-12-14 22:11:08

0

可以修改啓用和可見性:

tabPage1.Enabled = false; 
tabPage1.Visible = false; 

想到這符合OP更多:

FrameworkElement parent = userControl.Parent as FrameworkElement; // As is not needed, 'userControl' could be 'this' 

if (FrameworkElement != null) 
{ 
    parent.IsEnabled = false; 
    parent.IsVisible = false; 
} 
+0

這是非常模糊的,所以隨時提問。 – 2009-12-14 05:22:34

+0

只注意到'wpf'標籤。我的例子可能不適用。 tabItem1.IsEnabled:還沒有對花車:-P – 2009-12-14 05:25:11

+0

http://msdn.microsoft.com/en-us/library/system.windows.controls.tabitem_members.aspx 看起來你可以使用躍升= false; tabItem1.IsVisible = false; – 2009-12-14 05:48:27