タグ付けされた質問 「data-binding」

2つのデータ/情報ソースをバインドし、それらを同期して維持する一般的な手法。

5
双方向バインディングとは何ですか?
私は、Backboneが双方向バインディングを行わないことをたくさん読みましたが、この概念を正確に理解していません。 誰かが、MVCコードベースで双方向バインディングがどのように機能し、バックボーンではどのように機能しないかの例を教えてもらえますか?

12
静的プロパティへのバインド
単純な静的文字列プロパティをTextBoxにバインドするのに苦労しています。 これが静的プロパティを持つクラスです: public class VersionManager { private static string filterString; public static string FilterString { get { return filterString; } set { filterString = value; } } } 私のxamlでは、この静的プロパティをTextBoxにバインドしたいだけです。 <TextBox> <TextBox.Text> <Binding Source="{x:Static local:VersionManager.FilterString}"/> </TextBox.Text> </TextBox> すべてがコンパイルされますが、実行時に次の例外が発生します。 属性「Source」の値をタイプ「System.Windows.Markup.StaticExtension」のオブジェクトに変換できません。マークアップファイル「BurnDisk; component / selectversionpagefunction.xaml」のオブジェクト「System.Windows.Data.Binding」でエラーが発生しました。行57の位置29。 私が間違っていることは何か考えていますか?
168 wpf  xaml  data-binding 

4
オブザーバー、Pub / Sub、データバインディングの違い
オブザーバーパターン、パブリッシュ/サブスクライブ、データバインディングの違いは何ですか? Stack Overflowで少し検索したところ、良い答えは見つかりませんでした。 私が信じるようになったのは、データバインディングは一般的な用語であり、ObserverパターンやPub / Subパターンなど、それを実装するさまざまな方法があるということです。オブザーバーパターンでは、Observableがオブザーバーを更新します。Pub / Subを使用すると、0人のパブリッシャーが特定のクラスのメッセージをパブリッシュでき、0人のサブスクライバーが特定のクラスのメッセージをサブスクライブできます。 「データバインディング」を実装する他のパターンはありますか?

10
AngularJS:サービスプロパティにバインドする正しい方法
AngularJSでサービスプロパティにバインドする方法のベストプラクティスを探しています。 AngularJSを使用して作成されたサービスのプロパティにバインドする方法を理解するために、複数の例に取り組みました。 以下に、サービスのプロパティにバインドする方法の2つの例を示します。どちらも機能します。最初の例では基本的なバインディングを使用し、2番目の例では$ scope。$ watchを使用してサービスプロパティにバインドしました これらの例のいずれかがサービスのプロパティにバインドするときに推奨されますか、それとも私が知らない、推奨される別のオプションがありますか? これらの例の前提は、サービスがそのプロパティを「lastUpdated」と「calls」を5秒ごとに更新する必要があることです。サービスのプロパティが更新されると、ビューにこれらの変更が反映されます。これらの例はどちらも正常に機能します。それを行うより良い方法があるのだろうか。 基本的なバインディング 次のコードは、ここで表示および実行できます。http://plnkr.co/edit/d3c16z <html> <body ng-app="ServiceNotification" > <div ng-controller="TimerCtrl1" style="border-style:dotted"> TimerCtrl1 <br/> Last Updated: {{timerData.lastUpdated}}<br/> Last Updated: {{timerData.calls}}<br/> </div> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.js"></script> <script type="text/javascript"> var app = angular.module("ServiceNotification", []); function TimerCtrl1($scope, Timer) { $scope.timerData = Timer.data; }; app.factory("Timer", function ($timeout) { var data = { …

4
Spring MVCタイプ変換:PropertyEditorまたはConverter?
Spring MVCでデータをバインドして変換する最も簡単で最も簡単な方法を探しています。可能であれば、XML構成を行わないでください。 これまでのところ、PropertyEditorsを次のように使用しています。 public class CategoryEditor extends PropertyEditorSupport { // Converts a String to a Category (when submitting form) @Override public void setAsText(String text) { Category c = new Category(text); this.setValue(c); } // Converts a Category to a String (when displaying form) @Override public String getAsText() { Category c = …

3
データバインディングを介してWPFハイパーリンクのテキストを設定するにはどうすればよいですか?
WPFでは、オブジェクトの詳細に移動するハイパーリンクを作成し、ハイパーリンクのテキストをオブジェクトの名前にしたいと思います。今、私はこれを持っています: <TextBlock><Hyperlink Command="local:MyCommands.ViewDetails" CommandParameter="{Binding}">Object Name</Hyperlink></TextBlock> しかし、「オブジェクト名」をオブジェクトの実際の名前にバインドする必要があります。私はこのようなことをしたいと思います: <TextBlock><Hyperlink Command="local:MyCommands.ViewDetails" CommandParameter="{Binding}" Text="{Binding Path=Name}"/></TextBlock> ただし、Hyperlinkクラスには、データバインディングに適したテキストまたはコンテンツプロパティ(つまり、依存関係プロパティ)がありません。 何か案は?

7
@RequestParamでリストをバインドする
私はこのようにフォームからいくつかのパラメータを送信しています: myparam[0] : 'myValue1' myparam[1] : 'myValue2' myparam[2] : 'myValue3' otherParam : 'otherValue' anotherParam : 'anotherValue' ... 次のようなパラメータを追加することで、コントローラメソッドのすべてのパラメータを取得できることを知っています。 public String controllerMethod(@RequestParam Map<String, String> params){ .... } パラメータmyParam [](他のパラメータではない)をリストまたは配列(インデックスの順序を維持するもの)にバインドしたいので、次のような構文を試しました。 public String controllerMethod(@RequestParam(value="myParam") List<String> myParams){ .... } そして public String controllerMethod(@RequestParam(value="myParam") String[] myParams){ .... } しかし、それらのいずれもmyParamsをバインドしていません。マップに値を追加しても、paramsをバインドできません。 public String controllerMethod(@RequestParam(value="myParam") Map<String, String> params){ …

6
読み取り専用GUIプロパティをViewModelに戻す
Viewからのいくつかの読み取り専用の依存関係プロパティの現在の状態を常に把握しているViewModelを書きたいのですが。 具体的には、私のGUIにはFlowDocumentPageViewerが含まれており、これはFlowDocumentから一度に1ページを表示します。FlowDocumentPageViewerは、CanGoToPreviousPageおよびCanGoToNextPageと呼ばれる2つの読み取り専用の依存関係プロパティを公開します。私は自分のViewModelが常にこれら2つのViewプロパティの値を知っていることを望みます。 私はOneWayToSourceデータバインディングでこれを行うことができると考えました: <FlowDocumentPageViewer CanGoToNextPage="{Binding NextPageAvailable, Mode=OneWayToSource}" ...> これが許可されていれば完璧です。FlowDocumentPageViewerのCanGoToNextPageプロパティが変更されるたびに、新しい値がViewModelのNextPageAvailableプロパティにプッシュダウンされます。 残念ながら、これはコンパイルされません。「CanGoToPreviousPage」プロパティは読み取り専用であり、マークアップから設定できないというエラーが表示されます。どうやら読み取り専用プロパティは、そのプロパティに関して読み取り専用のデータバインディングでさえも、いかなる種類のデータバインディングもサポートしていません。 ViewModelのプロパティをDependencyPropertiesにして、OneWayバインディングを別の方法で作成することもできますが、関心の分離違反に夢中ではありません(ViewModelは、MVVMデータバインディングが回避するはずのビューへの参照が必要になるでしょう) )。 FlowDocumentPageViewerはCanGoToNextPageChangedイベントを公開していません。また、DependencyPropertyから変更通知を取得するための適切な方法がわからないため、バインドする別のDependencyPropertyを作成する必要があります。 ビューの読み取り専用プロパティの変更をViewModelに通知し続けるにはどうすればよいですか?

8
WPF DataGridを可変数の列にバインドするにはどうすればよいですか?
私のWPFアプリケーションは、毎回異なる数の列を持つ可能性があるデータのセットを生成します。出力には、フォーマットの適用に使用される各列の説明が含まれています。出力の簡略化されたバージョンは次のようになります。 class Data { IList<ColumnDescription> ColumnDescriptions { get; set; } string[][] Rows { get; set; } } このクラスはWPF DataGridのDataContextとして設定されますが、実際には列をプログラムで作成します。 for (int i = 0; i < data.ColumnDescriptions.Count; i++) { dataGrid.Columns.Add(new DataGridTextColumn { Header = data.ColumnDescriptions[i].Name, Binding = new Binding(string.Format("[{0}]", i)) }); } 代わりに、このコードをXAMLファイルのデータバインディングに置き換える方法はありますか?
124 c#  wpf  xaml  data-binding  datagrid 

4
StringFormatを使用してWPF XAMLバインディングに文字列を追加する
整数値(この場合は摂氏での温度)への一方向のバインディングを持つTextBlockを含むWPF 4アプリケーションがあります。XAMLは次のようになります。 <TextBlock x:Name="textBlockTemperature"> <Run Text="{Binding CelsiusTemp, Mode=OneWay}"/></TextBlock> これは実際の温度値を表示するのには問題なく機能しますが、数値ではなく°C(30ではなく30°C)が含まれるようにこの値をフォーマットしたいと思います。私はStringFormatについて読んでいて、次のようないくつかの一般的な例を見てきました。 // format the bound value as a currency <TextBlock Text="{Binding Amount, StringFormat={}{0:C}}" /> そして // preface the bound value with a string and format it as a currency <TextBlock Text="{Binding Amount, StringFormat=Amount: {0:C}}"/> 残念ながら、私が見た例では、私がしようとしているように、バインドされた値に文字列を追加していません。シンプルなものに違いないと思いますが、うまくいきません。誰でもそれを行う方法を私に説明できますか?

1
AngularJSで双方向フィルタリングを行う方法は?
AngularJSで実行できる興味深いことの1つは、特定のデータバインディング式にフィルターを適用することです。これは、たとえば、カルチャ固有の通貨やモデルのプロパティの日付形式を適用するのに便利な方法です。スコープに計算されたプロパティがあると便利です。問題は、これらの機能がどちらも双方向データバインディングシナリオでは機能しないことです。スコープからビューへの一方向データバインディングのみです。これは、他の点では優れたライブラリでの明らかな省略のようです-または何かが欠けていますか? でKnockoutJS、私は私は、プロパティの値を取得するために呼び出され1、およびプロパティが設定されたときに呼び出されるものを関数のペアを指定することができ、読み取り/書き込み計算プロパティを、作成することができます。これにより、たとえば、カルチャ対応の入力を実装できます。ユーザーが「$ 1.24」と入力して、それをViewModelのフロートに解析し、ViewModelの変更を入力に反映させます。 これに似ていると私が見つけることができる最も近いものは、$scope.$watch(propertyName, functionOrNGExpression);これを使用することです。これにより、プロパティの$scope変更時に関数を呼び出すことができます。しかし、これは、たとえば、文化を意識した入力の問題を解決しません。メソッド自体の$watched中でプロパティを変更しようとすると、問題に注意してください$watch。 $scope.$watch("property", function (newValue, oldValue) { $scope.outputMessage = "oldValue: " + oldValue + " newValue: " + newValue; $scope.property = Globalize.parseFloat(newValue); }); (http://jsfiddle.net/gyZH8/2/) ユーザーが入力を開始すると、入力要素は非常に混乱します。プロパティを2つのプロパティに分割し、1つは解析されていない値用、もう1つは解析された値用に改善しました。 $scope.visibleProperty= 0.0; $scope.hiddenProperty = 0.0; $scope.$watch("visibleProperty", function (newValue, oldValue) { $scope.outputMessage = "oldValue: " + oldValue + " newValue: " + newValue; …

5
XAMLで複数の値コンバーターをチェーンする方法はありますか?
データコンテキストのプロパティにバインドされた整数値を2つの個別の変換にかけた後、それを表示する必要がある状況があります。 範囲内の値を反転します(例:範囲は1〜100、データコンテキストの値は90、ユーザーには10の値が表示されます) 数値を文字列に変換する 独自のコンバーター(IValueConverterを実装する)を作成することで、両方の手順を実行できることに気付きました。ただし、最初のステップのみを実行する別の値コンバーターが既にあり、2番目のステップはInt32Converterでカバーされています。 XAMLでこれらの2つの既存のクラスをチェーン化して、それらを集約するクラスをさらに作成する必要がない方法はありますか? これを明確にする必要がある場合は、お知らせください。:) ありがとう。


5
includeタグを使用したAndroidデータバインディング
更新メモ: 上記の例は適切に機能します。リリース1.0-rc4では、不要な変数が必要になるという問題が修正されたためです。 元の質問: 私はそれがドキュメントに記載されているように正確に行いますが、機能しません: main.xml: <layout xmlns:andr... <data> </data> <include layout="@layout/buttons"></include> .... buttons.xml: <layout xmlns:andr...> <data> </data> <Button android:id="@+id/button" ...." /> MyActivity.java: ... binding = DataBindingUtil.inflate... binding.button; ->cannot resolve symbol 'button' ボタンの入手方法は?

10
WPF検証エラーの検出
WPFでは、ExceptionValidationRuleまたはを使用して、データバインディング中にデータレイヤーでスローされたエラーに基づいて検証をセットアップできます。DataErrorValidationRule。 この方法で多数のコントロールを設定し、[保存]ボタンがあるとします。ユーザーが[保存]ボタンをクリックした場合、保存を続行する前に検証エラーがないことを確認する必要があります。検証エラーがある場合は、それらを非難する必要があります。 WPFで、Data Boundコントロールに検証エラーが設定されているかどうかをどのように確認しますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.