問題タブ [contenttemplate]
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 - ボタン スタイル パフォーマンス ヒット
WPF ユーザー コントロールに 10000 近くのアイテムを表示するユースケースがあります。私は ItemsControl を使用しており、各項目はボタン (クリック可能な単純なテキストの項目) で表されます。ユーザー コントロール リソースのボタンのスタイルを定義しました。
リストに 5000 を超えるアイテムが含まれるまで問題なく動作し、UI ペイントの速度が低下し始めます。10000 のアイテムが表示されるまでに 3 分以上かかります。
スタイルをリソースから Button.Style に移動すると、項目が表示されるまでに 2.5 分かかります。
スタイルを完全に削除しても、顕著な遅延は見られません。Button スタイルを使用する唯一の理由は、ContentPresenter の Border (以下のコードでは Chrome という名前) にボタンと同じ背景 (それ以外の場合は灰色) を与えることです。
パフォーマンス ヒットを発生させずにスタイルを効率的に使用する方法、または ContentPresenter の境界線の背景をボタンと同じ色でペイントする方法を教えてください (透明は何とか機能します)。
コードサンプルは次のとおりです。
ありがとう、
RDV
listview - カスタム ListViewItem を使用して ListView でドラッグ アンド ドロップ操作を実行する方法
いくつかのデータテンプレートを使用してリストビューを実装した UWP アプリケーションを開発しています。
そして、その中でドラッグアンドドロップ操作を行いたいです。同じことを達成する方法を教えてください。
gridview - DotVVM: GridViewTemplateColumn ContentTemplate 内でカスタム バインディングを使用する
KO 用の jQuery AutoComplete バインディングを作成しました。用語による提案のサーバー側検索を実行できます。また、ID によってサーバーから取得した単一の値をテキスト ボックスまたは非入力 html 要素に入力することもできます。これまでのところ、問題なく動作しています。
同じバインディングを ContentTemplate に配置すると、GridView の最初のレンダリング中にすべてのバインディングが正常に機能し、アイテム内の各 ID のデータがサーバーから取得され、正しい名前がスパンに挿入されます。
グリッドの 2 番目のページに移動しようとすると、メイン データがサーバーから取得され、各行項目の新しい ReviewObjectId-s が取得されますが、サーバーは要求されません (Chrome デバッガーのネットワーク タブに要求はありません) )、さらにバインディングはまったく初期化されていないため、名前は前のページとまったく同じように表示されます。ほとんどの場合、ページャーで最後のページに移動するまで、またはページャーでより多くのページング番号がレンダリングされるまで、同じ動作が発生します。次のページをクリックするとうまくいく場合があります
各行に同じ名前を表示するように DataSource をフィルタリングすると (すべての項目に同じ対象の ReviewObjectId があります)、多くの場合、同じ結果が表示されます。
カスタムバインディングは次のようになります
「検索」は、提案のリストを生成するオートコンプリート API URL です。
「get」は、ID (ReviewObjectId) によってエンティティを提供するフィル API URL です。
受け取ったJSONをviewModelにマッピングするためのTextItemとValueItemが用意されています。
GridView、DataPager、フィルターの両方で DataSource と同じ GridViewDataSet を使用しています。データソースは常にページとフィルターの値に従って正しくフィルター処理されます。
私は何を間違っていますか?どこまで掘ればいい?
UPD: バインディング: