2008-11-06 11 views
1

를 선택할 수 없습니다 나는 정말 간단한 WPF UserControl을이 :이 같은 창에 두 번 사용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> 

. 이제는 UserControl의 두 번째 인스턴스에서 첫 번째 TextBox를 선택할 수 있지만 두 번째 ("txtDatabase") 텍스트 상자는 탭핑이나 클릭으로 선택할 수 없습니다. 왜 이런거야 ? WPF usercontrols를 만드는 것과 관련하여 뭔가 빠졌습니까?

편집 : 데이터베이스 이름은 읽기 전용이 아니며 단순 속성입니다. 해당 UserControl이 같은 외모에 배치되는 창에 대한 XAML :

<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> 

답변

2

Try Mode = TwoWay를 바인딩에 사용하십시오. 나는 초기화가 값을 설정하고 컨트롤이 값을 설정할 수없는 곳에서 이것을 보았다.

<TextBox x:Name="txtDatabase" TabIndex="2" Text="{Binding Path=DatabaseName, Mode=TwoWay}"></TextBox> 
0

이 XamlPad에서 작동, 그래서 당신이 그 문제를 일으키는 게시 된 코드 외부의 무언가가 있다고 생각합니다. DatabaseName은 읽기 전용입니까?

관련 문제