假設我在WPF應用程序的TabControl上有十個文本框。我的目的是設置tabcontrol的IsReadOnly,使其上的每個文本框自動設置爲ReadOnly。但TabControl似乎沒有IsReadOnly屬性。如何在WPF中的網格上設置文本框的只讀屬性?
我該如何做到這一點?
假設我在WPF應用程序的TabControl上有十個文本框。我的目的是設置tabcontrol的IsReadOnly,使其上的每個文本框自動設置爲ReadOnly。但TabControl似乎沒有IsReadOnly屬性。如何在WPF中的網格上設置文本框的只讀屬性?
我該如何做到這一點?
一種方法可能是創建自己的tabcontrol。然後添加一個DependencyProperty IsReadOnly。如果你完成了,你可以將所有TextBoxes IsReadOnly綁定到你的TabItem IsReadOnly。
我能想到的最好的辦法:附加只讀屬性到TabControl類型:
創建一個新的輔助類:
public static class TabControlHelper
{
private static readonly DependencyProperty IsReadOnlyProperty =
DependencyProperty.RegisterAttached("IsReadOnly", typeof(bool), typeof(TabControlHelper), new PropertyMetadata(false));
}
然後在您的XAML:
<TabControl TabControlHelper.IsReadOnly="true">...</TabControl>
然後您可以簡單地在選項卡控件的每個文本框中繼承此值。
你可以一個文本框樣式添加到您的TabControl的資源:
<TabControl.Resources>
<Style TargetType="{x:Type TextBox}">
<Setter Property="IsReadOnly" Value="{Binding IsReadOnly}" />
</Style>
</TabControl.Resources>
謝謝你,大衛。我會試一試。 – user748149 2011-05-16 01:19:30