I have a really simple WPF UserControl:
<UserControl x:Class='dr.SitecoreCompare.WPF.ConnectionEntry' xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' x:Name='connEntry' BorderBrush='Navy' BorderThickness='1' Margin='5,0,0,5' > <StackPanel Margin='0,10,0,0' > <Label FontWeight='ExtraBold' Content='{Binding ElementName=connEntry, Path=Title}'></Label> <Label Margin='0,5,0,0'>Server:</Label> <TextBox x:Name='txtServer' TabIndex='1' Text='{Binding Path=ServerName}' ></TextBox> <Label>Database:</Label> <TextBox x:Name='txtDatabase' TabIndex='2' Text='{Binding Path=DatabaseName}'></TextBox> </StackPanel>
This is used twice in the same window. Now, I can select the first TextBox on both th instances of my UserControl, but the second (‘txtDatabase’) textbox cannot be selected, neither by tabbing or clicking. Why is this ? Am I missing something with regards to creating WPF usercontrols ?
EDIT: DatabaseName is not readonly, it is a simple property. The XAML for the window the usercontrol is placed on looks like this:
<Window x:Class='dr.SitecoreCompare.WPF.ProjectDialog' xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' xmlns:c='clr-namespace:dr.SitecoreCompare.WPF' Title='Choose project' Height='280' Width='500' WindowStartupLocation='CenterOwner' WindowStyle='SingleBorderWindow' HorizontalAlignment='Center' ShowInTaskbar='False' ShowActivated='True' ResizeMode='NoResize' VerticalContentAlignment='Top' VerticalAlignment='Center'> <StackPanel> <Label>Choose databases</Label> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <c:ConnectionEntry Grid.Column='0' x:Name='connMaster' Title='Master:' Padding='5' /> <c:ConnectionEntry Grid.Column='1' x:Name='connSlave' Title='Slave:' Padding='5' /> </Grid> <StackPanel Orientation='Horizontal' HorizontalAlignment='Right' Margin='0,0' > <Button x:Name='btnCancel' Click='btnCancel_Click'>Cancel</Button> <Button x:Name='btnOK' Click='btnOK_Click'>OK</Button> </StackPanel> </StackPanel> </Window>
Try Mode=TwoWay in your binding. I’ve seen this where the initialization sets the value and the control can not set the the value.