Silverlight의 기본 TextBox에서 파생되는 'MyTextBox'클래스가 있습니다. 이 클래스에는 현재 추가 코드가 없습니다.파생 된 텍스트 상자의 "텍스트 속성"을 다른 텍스트 상자에 바인딩 할 수 없습니다.
xaml에서 텍스트 상자에 입력 한 내용을 반영하기 위해 MyTextbox의 Text-Property를 다른 Textbox에 바인딩하도록 바인딩을 설정했습니다. 그 효과는 MyTextBox가 업데이트되지 않고 다른 텍스트 상자의 텍스트를 표시하지 않는다는 것입니다.
추가 일반 텍스트 상자에 대해 동일한 바인딩을 만들었습니다. 그리고 이것은 작동합니다.
여기에 바인딩에 대한 XAML이 있습니다.
<UserControl x:Class="Silverlight.Sample.Dummy"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:my="clr-namespace:Sample"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<StackPanel x:Name="LayoutRoot" Background="White">
<TextBox Height="23" x:Name="textBox2" Width="120" />
<TextBox Text="{Binding ElementName=textBox2, Path=Text, Mode=TwoWay}" Width="120" />
<my:NumberTextBox Width="120" Text="{Binding ElementName=textBox2, Path=Text, Mode=OneWay}" />
</StackPanel>
내가 컨트롤에서 파생 할 때, 바인딩 설정하는 특별한 뭔가가 있나요.
추신 : 나는 INotifyPropertyChanged를 사용하여 더미 개체에 바인딩을 시도하고 기존 Textbox에 대한 DataContext로 설정했습니다. 이 테스트는 예상대로 작동하고 파생 된 텍스트 상자가 업데이트됩니다. NumberTextBox :
동일한 효과로 TwoWay 바인딩을 시도했습니다. NumberTextBox는 TextBox에서 파생됩니다. 현재 NumberTextBox에는 추가 코드가 없습니다. 내가 생각하기에 그것을 제거했습니다, 그것은 정의 된 바인딩을 깨뜨릴 것입니다. – Jehof