У меня есть элемент управления ChildWindow с несколькими текстовыми полями и кнопкой в нем. Когда я нажимаю кнопку, я хочу изменить свойство IsReadOnly одного из текстовых полей. В моем обработчике события нажатия кнопки все объекты TextBox имеют значение «null».
Может кто-нибудь объяснить, почему это так, и как я могу получить к ним доступ?
Спасибо за любую помощь.
Edit:
<localCW:cwBase x:Class="Administration.cwAdd"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
xmlns:localCW="clr-namespace:Administration.ChildWindows"
xmlns:localCtrl="clr-namespace:Administration.Controls"
Width="480"
Height="460"
Title="Add"
Header="Add New"
OkButtonText="Save">
<Grid x:Name="LayoutRoot"
Margin="2">
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="80" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
....
....
<TextBlock Text="Relative Path:"
Grid.Row="2"
Grid.Column="0"
Margin="0,0,0,5"
HorizontalAlignment="Right" />
<Grid Grid.Row="2"
Grid.Column="1"
Width="250"
HorizontalAlignment="Left">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="30" />
</Grid.ColumnDefinitions>
<localCtrl:RelativeURLTextBox x:Name="tbxNewUrl"
Grid.Column="0"
Margin="5 0 0 5"
Width="215"
HorizontalAlignment="Left"
Text="{Binding RelativeURL, Mode=TwoWay}" />
<Button Grid.Column="1"
Margin="3"
Width="24"
Height="24"
Click="btnEditRelURL_Click">
<Button.Content>
<Image Source="../images/edit_16px.png"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Button.Content>
</Button>
</Grid>
private void btnEditRelURL_Click(object sender, RoutedEventArgs e)
{
// Neither of these worked vvv
tbxNewUrl.SetReadOnly(false);
//this.Dispatcher.BeginInvoke ( () => {tbxNewUrl.SetReadOnly(false);});
}