4

UWP アプリケーションを Binding から x:Bind に書き直しています。さまざまなテキストボックスに TextChanged イベントがあります。Binding を使用すると、GetBindingExpression を使用してモデルを更新できます。x:Bind に相当する Methode はありますか? または、どうすれば x:Bind で作成できますか?

    public void TextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
        var binding = ((TextBox)sender).GetBindingExpression(TextBox.TextProperty);
        binding.UpdateSource();
    }
4

3 に答える 3

1

私は以前にこれをやろうとしましたが、成功しませんでした。Bind は単なるマークアップ拡張であるため、現時点では利用できないと思います。ドキュメントと使用例は次の とおりですhttps://msdn.microsoft.com/en-us/library/windows/apps/mt204783.aspx

于 2016-03-01T17:23:52.943 に答える
0

このFrameworkElement.GetBindingExpressionメソッドは、 BindingBindingExpressionの単一インスタンスに関する情報を含む を返します。

したがって、これはバインディングでのみ使用できます。投稿されたコードによると、テキストが変更されたときに x:Bind を使用してソースを更新したいようです。Binding では、これを行うように設定できUpdateSourceTriggerますPropertyChanged

<TextBox Text="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="200" Margin="5" />

ただしUpdateSourceTrigger、x:Bind のプロパティはなく、フォーカスが失われたときにのみトリガーされます。したがって、この場合は Binding を使い続けることをお勧めします。

于 2016-03-02T05:03:36.417 に答える