問題タブ [datacontext]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mvvm - MVVM + Datacontext + DataTemplate + Blend = 問題
現在、WPF プロジェクトで MVVM を使用していますが、すべてうまく機能しています。MasterViewModel の currentView プロパティを使用して、1 つのマスター ビューと多くの詳細ビューを管理しています。データ テンプレートを使用して、ビューをビューモデルにバインドします。実際、私のマスター ビューには、コンテンツ プロパティが CurrentView プロパティにバインドされているコンテンツ コントロールがあります。この currentview プロパティをビューモデルなどに設定すると、対応するテンプレートが呼び出されます。
私の問題は、これを使用すると、データテンプレートによって配置されるため、詳細ビューに明示的なデータコンテキストがないことです。そのため、blend では、ビューを開いてそのデザインを編集すると、ビューにバインドするデータがありません。データコンテキストを詳細ビューに設定すると、バインドできるすべてのデータがブレンドで表示されますが、実行時には、データテンプレートによって設定されたデータコンテキストが詳細ビューで設定されたデータコンテキストによって上書きされるため、実行時にデータがありません。
データテンプレートによって管理されるビューと Blend で表示できるデータコンテキストを使用して、適切な MVVM プロジェクトを作成する方法を知っている人はいますか?
ありがとう、
wpf - WPF:DataContextChangedが論理的な子で発生しないのはなぜですか?
カスタムPanelコントロールの論理的な子でDataContextChangedが発生しないという問題があります。私はそれをこれに絞り込みました:
ウィザードで生成されたWPFアプリケーションから始めて、次を追加します。
私が理解しているように、DataContextは継承可能な依存関係プロパティであるため、これは機能します。
ここで、ウィンドウ(this)とその論理子の両方にDataContextChangedのイベントハンドラーを追加します。
これを実行すると、最初のイベントハンドラーのみが実行されます。どうしてこれなの?AddLogicalChild(elt)の代わりに、次のようにします。
両方のハンドラーが実行されます。しかし、これは私の場合のオプションではありません-視覚的な子ではないはずのFrameworkContentElementsをコントロールに追加しています。
何が起きてる?AddLogicalChild()以外に何かを実行して、機能させる必要がありますか?
(幸い、かなり単純な回避策があります。要素のDataContextをウィンドウのDataContextにバインドするだけです)
ありがとうございました。
.net - Linq: DataContext 内のすべてのテーブルのリストを取得する
100 を超えるテーブルを含む DataContext (Linq to Sql) があります。これらすべてのテーブルのリストを取得して、それらをコンソールに出力することはできますか? これはばかげた質問かもしれません。
ありがとう。
silverlight - Silverlight: スタイル内の要素に datacontext を適用する
でスタイルを定義しましたapp.xaml
。このスタイルには、スタイルをオブジェクト (この場合は UserPin) に適用するときに制御したいテキスト TextBlocks がいくつか含まれています。これらの TextBlocks ランタイムにアクセスするにはどうすればよいですか? 次の方法でスタイルを取得します。
スタイルは次のようになります。
TextBlock
設定しようとしている値はですtxtBottom
。ご覧のとおり、データコンテキストとデータバインディングをフィールドに適用しようとしました。これは機能しますが、もちろんすべてのオブジェクトが「初期名」という値を取得します。
私の質問は次のとおりです。
- データコンテキストを適用して
txtBottom.Text
変更するにはどうすればよいですか、または - データバインディングなしで
TextBlock
名前付きの値を変更するにはどうすればよいですか?txtBottom
- つまり、これらのフィールドまたはプロパティにまったくアクセスできますか?
ランタイム:)これまでのところ、トリガーはWPFでのみ使用できることがわかりました。
私はこのようなことを考えています:
locationData
データを含むオブジェクトはどこにありますか。
誰かが不思議に思うなら; 地図上にアイコンを配置していて、それらに名前を付けたいと思っています。
wpf - いいえ、Adorner は WPF で AdornedElement の DataContext を自動的に取得しません。
元の質問: Adorner
WPF の「AdornedElement」の「DataContext」を自動的に継承しますか?
c# - c#: linq オブジェクトを渡す方法
メイン ウィンドウを表示するときに、linq-to-sql からオブジェクトのリストを作成します。
ここで、リスト内の項目をダブルクリックすると、選択したオブジェクトを新しいユーザー コントロールで使用したいと考えています。
さて、これは例外になります:
System.ObjectDisposedException は処理
されませんでした Message="破棄されたオブジェクトにアクセスできません。\r\nオブジェクト名: 'DataContext は Dispose 後にアクセスされました.'."
Source="System.Data.Linq"
ObjectName="Dispose 後にアクセスされる DataContext。"
これは、リストをショーのシーズンリストにバインドした結果であり、シーズンリストにデータを入力する必要があるか、何かが必要なためだと思います。
さて、私が知りたいのは、これがどのように行われることになっているのですか? 新しい DataContext オブジェクトを作成して、選択したショーを再度取得する必要がありますか? または、ショーを新しい datacontext に再接続してシーズン リストに入力することは可能ですか?
ちょっと寂しいかな……。
c# - ビューを含むビューで DataContext はどのように継承されますか?
Josh Smith の WPF CommandSink の例を再構築していますが、彼のデータ バインディングについて理解できないことがいくつかあります。特に、データ コンテキストを持つウィンドウに含まれる別のビューにビューが含まれている場合に、データ コンテキストがどのように継承されるかについてです。
- すべてのデータ バインディングは XAML ファイルで宣言されており、ウィンドウやビューの背後にコードはまったくありません (いいですね)。
- 一番上の Window はその DataContext を CommunityViewModel として定義し、単に CommunityView を表示します
質問: それでは、CommunityViewModel では、
jas:CommandSinkBinding.CommandSink="{Binding}"
実際に何をしますか? 「CommandSink」は添付プロパティなので、これは CommandSinkBinding オブジェクトの「CommandSink」と呼ばれる添付プロパティの値として DemoWindow から継承された Binding を「添付」していますか?質問:また、PersonView には DataContext がないようですが
<TextBlock Text="{Binding Name}" Width="60" />
、バインディングが設定されていることを前提とする行があります。PersonView は自動的に CommunityView の行からバインディングを取得しItemsSource="{Binding People}"
ますか?
ここで明確にしていただきありがとうございます。
DemoWindow.xaml:
CommunityView.xaml:
PersonView.xml:
c# - INステートメントのDatacontextExecuteCommandパラメーター
C#LinQからSQLデータコンテキストsql
を使用してカスタムステートメントを実行するための最良の方法は何ですか?IN
私が試してみました:
これは、フォームを通過した1つのアイテムには問題ありませんが、たとえば「2,1」を介して投稿された場合、sqlclient
例外が発生します。
nvarchar値「2,1」をデータ型intに変換するときに変換に失敗しました。
代わりにstring.formatを使用してパラメーターを挿入すると、正常に機能しますが、明らかにこれはSQLインジェクションに対してオープンです。
asp.net - DataContext 静的変数の使用
最近、Linq2SQL を使用して ASP.Net アプリを継承しました。現在、すべてのページで DataContext オブジェクトが static として宣言されており、null (シングルトン、一種) であることが初めてわかったときに作成します。
これが良いか悪いかコメントが必要です。DBから読み取るだけでよい場合と、書き込む必要がある場合があります。
アプリケーション全体で DataContext インスタンスを 1 つだけ持つのはどうですか?