1

SimpleText という UserControls を作成し、MainWindow.xaml で参照しました。私の SimpleText にあるのは TextBox (tbox と呼ばれる) だけです。私の MainWindow には、別の TextBox (tbox2 と呼ばれます) があります。私が達成したいのは、その 2 つのテキスト ボックスの間に TwoWay バインディングを設定することです。

内部で何かを変更するには、UserControls のコードでプロパティを宣言する必要があることを stackoverflow で読みました (これが必要ない場合は修正してください)。

 public string MyText
        {
            get { return tboxUser.Text; }
            set { tboxUser.Text = value; }
        }

次に、MainWindow.xaml から MyText にアクセスできますが、「静的」な値しか指定できません。

Window x:Class="WpfApplication11.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApplication11"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <!-- <local:SimpleText MyText="Hello"/>  Works !-->
        <local:SimpleText MyText="{Binding Text, ElementName=tbox2}"/> <!--Does not work-->
        <TextBox x:Name="tbox2" Margin="0,200,0,0"  Text="Text Box 2" />
    </Grid>
</Window>

次のようなエラーが表示されます。

タイプ 'SimpleText' の 'MyText' プロパティに 'Binding' を設定することはできません。「Binding」は、DependencyObject の DependencyProperty でのみ設定できます。

しかし、悲しいことに、私はここで非常に初心者であり、MyText を DependencyProperty にする方法がわかりません。ありがとう。

4

1 に答える 1