我在主窗口中的tabcontrol中的tabitems內有許多usercontrols。一個用戶控制每個tabitem都在一個窗口內。UserControls,TabControl,窗口混淆
在其中一個控件(在其中一個tabitems內)執行某些代碼後,我想要啓用/禁用其他tabitems。
我該怎麼辦?
我在主窗口中的tabcontrol中的tabitems內有許多usercontrols。一個用戶控制每個tabitem都在一個窗口內。UserControls,TabControl,窗口混淆
在其中一個控件(在其中一個tabitems內)執行某些代碼後,我想要啓用/禁用其他tabitems。
我該怎麼辦?
通常你會用邏輯的模型對象,讓你有事件'執行'會改變模型(通過方法調用),然後模型會更新它的內部狀態,這將反映在DependencyProperties中,您將通過Xaml綁定您的UI。
可以修改啓用和可見性:
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;
}
這是非常模糊的,所以隨時提問。 – 2009-12-14 05:22:34
只注意到'wpf'標籤。我的例子可能不適用。 tabItem1.IsEnabled:還沒有對花車:-P – 2009-12-14 05:25:11
http://msdn.microsoft.com/en-us/library/system.windows.controls.tabitem_members.aspx 看起來你可以使用躍升= false; tabItem1.IsVisible = false; – 2009-12-14 05:48:27
同意。在主ViewModel「Tab1Enabled」中使用一個屬性並將觸發器綁定到它。 – adrianm 2009-12-14 07:24:24
您能否詳細說明一下?你會如何將觸發器綁定到它? – baron 2009-12-14 22:11:08