Как установить свойство readonly текстовых полей в сетке в WPF? - PullRequest
2 голосов
/ 13 мая 2011

Предположим, у меня есть десять textBox для TabControl в приложении WPF. Моя цель состоит в том, чтобы установить IsReadOnly для tabcontrol так, чтобы каждое текстовое поле на нем автоматически устанавливалось на ReadOnly. Но TabControl, похоже, не имеет свойства IsReadOnly.

Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 04 апреля 2012

Вы можете добавить стиль TextBox к ресурсам вашего TabControl:

        <TabControl.Resources>
            <Style TargetType="{x:Type TextBox}">
                <Setter Property="IsReadOnly" Value="{Binding IsReadOnly}" />
            </Style>
        </TabControl.Resources>
2 голосов
/ 13 мая 2011

Одним из способов может быть создание собственного tabcontrol.затем добавьте DependencyProperty IsReadOnly.если вы закончили, вы можете привязать все текстовые поля IsReadOnly к вашему TabItem IsReadOnly.

1 голос
/ 13 мая 2011

лучший способ, которым я могу придумать: присоединить свойство ReadOnly к типу 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>

тогда вы можете просто унаследовать это значение в каждом текстовом поле в элементе управления вкладкой.

...