問題タブ [element-binding]
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.
wpf - ComboBoxItem DisplayValue へのアクセス
オブジェクトのリストの ItemsSource を持つコンボボックスがあります。そのため、DisplayMemberPath はオブジェクトの特定のプロパティに設定されます。もちろん、これは正しい値が ComboBoxItem に表示されることを意味します。
私の問題は、XAML の DisplayMemberPath によって返される「値」を取得して、それを別のものにバインドできるようにしたいということです。つまり、ComboBoxItem に「DisplayText」プロパティを設定したいと考えています。
もちろん、私はこれを持っていないので、ContentHost を探して ComboBoxItem のテンプレートに移動せずにこの値を取得する方法を知っている人はいますか?
これの私の特定の使用法に興味がある場合は、ComboBox のスタイルでこれを実行しようとしています。
もちろんPath=Content
、ItemsSource をプロパティにバインドするだけであれば問題なく動作しますが、それが DisplayMemberPath を持つオブジェクトの場合、Content はそのオブジェクトになります。
問題のヘルプまたは再構成に感謝します。
wpf - 四角形の RadiusX を四角形の ActualHeight にバインドし、Expression Blend 4 (または VS) で数値を掛けるにはどうすればよいですか?
現在、私は「不正行為」をしており、次のものを使用しています。
これx:Code
は実行時に完全に機能し、私が望むものを達成します。しかし、私は本当に次のようなことをして、すぐに変更したいと思ってArtboard
います:
しかし、これを含める方法はありません.5*(...)
。これを達成する別の方法はありますか?
wpf - 複数の要素プロパティをwpfの要素にバインドするにはどうすればよいですか?
上記のコードを使用すると、次の結果が得られます。
textBox1ボタンをクリックすると、textBox2とtextBox3をクリックすると、ボタンが非表示になります。
必要なのは、textBox1とtexBox3をクリックするたびに、ボタンを非表示にする必要があります。上記の行の意味は、
これは可能ですか?
xaml - ValueConverter を使用して、親の ActualHeight および別の ViewModel プロパティに対して Line を配置する
ViewModel に と呼ばれるプロパティがありRelativeHeight
、これは 0 から 1 までの double です。
私のビューでは、幅がコンテナーと同じである水平線がありますが (を介してElement Binding
)、コンテナーのサイズに対して垂直位置が必要です。
たとえば、RelativeHeight
is0.3
でコンテナのActualHeight
isの200
場合、Line.X1
andLine.X2
は60
それぞれになります。
次のコードは私が得たものですが、通常、メソッドIValueConverter
を呼び出すときにビューからプロパティを取得できないため、使用方法がわかりません (または、最初に使用する必要がある場合でも) 。Convert
wpf - 異なる UserControl 間で View (ViewModel ではなく) のプロパティを共有する
地理的な地図に似たものを表示するビューがあり、このビュー内にいくつかUserControls
あります。それぞれに DataContext に関する関連情報が表示されますが、それぞれ異なる視点から表示されます。
次に、私の目標は、マウスを 1 つの UserControl の上に置いて、すべての UserControl の機能を強調表示することですが、もちろん、この強調表示の視覚的なスタイルは各 UserControl に固有です。
たとえば、マップにパスがあり、その標高プロファイルがグラフにプロットされている場合、標高プロファイルの上にマウスを移動して、そのグラフの上に垂直線を動的に表示し、同時にいくつかのマーカーを動的に表示したいと考えています。マップに表示され、その逆も同様です。
ビュー自体で数値を使用することでこれを行うことができます。これは、各 UserControls で双方向のデータバインドになりますが、概念的な問題がいくつかあります。
- 従来のデータ バインディングは ViewModel のプロパティを前提としていますが、「マウス ハイライト」機能は View に固有のものであり (オブジェクトの状態を表すものではありません)、そのようなプロパティを ViewModel に追加して汚染することは絶対にしたくありません。ビュー固有のコードを使用。
- UserControls が作成されると、それらの DataContext は ViewModel またはそのプロパティの一部になります。UserControl の一部の DataContext を別のオブジェクトに変更する必要があることは、推奨できる方法でも簡単な方法でもないようです。
- 少しハックして、
Slider
折りたたみ表示で View を作成し、各 UserControl で ElementBinding を使用することもできますが、それでも、View と含まれる UserControl の間で ElementBinding を行うにはどうすればよいでしょうか?
したがって、主な質問は次のとおりです。
ビュー (ViewModel ではありません!) の単一のプロパティを、その特定のビューに含まれる多くの UserControls にバインドするにはどうすればよいですか?
すべてが単一のモノリシック ビューである場合、ElementBinding を使用することは私にとって明らかな選択ですが、異なるクラス (1 つのビューと多くの UserControls) では、ElementBinding の実行方法がわかりません。私が欲しいもの。
firefox - FireFox はドラッグ時にマウスの位置を取得できません
私はAngularに次のコードを持っています
ただし、これは何があっても同じ数値を返すだけです。ドラッグをやめてドラッグを再開するとpageY
、ドラッグが開始された時点が返され、その数値が維持されます。なんで?
c# - コンテキスト メニューから ElementName をバインドしてもターゲットが見つからない
ドロップダウン メニュー ボタン内のコンテキスト メニューから要素にバインドしようとしています ( http://shemesh.wordpress.com/2011/10/27/wpf-menubutton/から)。コンテキスト メニューの外側ではバインディングが機能しているように見えますが、コンテキスト メニュー内のバインディングは機能しません。
これは XAML です (非常に単純化されています)。
機能しないバインディングは {Binding ElementName=pieChart} です。これは、コマンドが見つかっているため、おかしいです。RelativeSource を機能させることができなかったようですが、誰かがバインディングを正しくするのを手伝ってくれますか?
wpf - Binding layout properties of different UserControls
I have the following layout for a screen displaying multi-channel information (similar to audio tracks):
MultiChannelPlotterControl
contains oneHorizontalRuler
instance at the bottom and aUniformGrid
containing NSingleChannelPlotterControl
instances;- Each
SingleChannelPlotterControl
has one instance ofVerticalRuler
aligned to left;
Problems are:
- Each vertical ruler can have a different Width, but I would like them all to stretch to the largest width so that they could fit, but since they are on different controls, I cannot put them in the same container (another
UniformGrid
, for example. Now if I decide to put them together in a different container, they would not be part of theSingleChannelPlotterControl
anymore; - There is a rectangular region on the bottom left corner. That is supposed to have the same Width of the VerticalRuler(s), but it is still higher in the layout tree. It is currently empty, but I could put something there and bind its Width, for example;
So the question is:
How could I Layout/Element-Bind/Style these controls so that right edge of the Vertical Rulers keep aligned to each other (fitting the widest one) and with the left edge of the Horizontal Ruler?
EDIT:
I guess I could create a "LeftPanelWidth" DependencyProperty on MultiChannelPlotterControl
, and on its getter use some VisualTreeHelper
wizardry to get ActualWidths for every VerticalRuler inside, but how would I choose the largest width and set the widths of the others?