リソースディクショナリでデータテンプレートをバインドするにはどうすればよいですか

cdie

ディクショナリで定義されているデータテンプレートに要素をバインドしようとしています。簡単にしましょう。

簡単なクラスがあります

public class A { public string Data {get;set} }

ListBoxを含む単純なビューがあり、ItemSourcesはクラスAのリストです。

<ListBox ItemsSource="{Binding AList}">

重要なのは、Itemplateをビューで直接定義すると、バインドが機能することです。

<ListBox.ItemTemplate>
   <DataTemplate >
      <TextBlock Text="{Binding Data}" />
      <Rectangle Fill="Red" Height="10" Width="10"/>
   </DataTemplate>
 </ListBox.ItemTemplate>

これはうまくいきます。

しかし、このItemTemplateをリソースディクショナリで定義すると、バインディングが機能しませんか?

どうやってやるの ?

PS:これは私の問題を説明する簡単な例です。toString関数をオーバーライドして機能させたり、classeテンプレートを使用したりするように言わないでください。私の実際のケースは、これよりも非常に複雑です。

手伝ってくれてありがとう

lerner1225

新しいDictionary1.xamlを作成します

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <DataTemplate x:Key="dataTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Data}" />
            <Rectangle Fill="Red" Height="10" Width="10"/>
        </StackPanel>
    </DataTemplate>
</ResourceDictionary>

MainWindow.xamlでそれを参照してください

<Window.Resources>
    <ResourceDictionary Source="Dictionary1.xaml" />
</Window.Resources>
<ListBox Name="lst" ItemTemplate="{StaticResource dataTemplate}"></ListBox>

MainWindow.cs:

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
        {
            var observable = new ObservableCollection<Test>();
            observable.Add(new Test("A"));
            observable.Add(new Test("B"));
            observable.Add(new Test("C"));
            this.lst.ItemsSource = observable;
        }
    }

    public class Test
    {
        public Test(string dateTime)
        {
            this.Data = dateTime;
        }

        public string Data { get; set; }
    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

リフレクションを介してプライベートメソッドとプライベートデータメンバーにアクセスするにはどうすればよいですか?

分類Dev

オープン ソース ドライバーを使用して、すべてのアプリケーションをディスクリート GPU で実行/永続的に有効にするにはどうすればよいですか?

分類Dev

C#ディクショナリで定義されたタイプをインポートするにはどうすればよいですか?

分類Dev

Djangoでこのコンテキストディクショナリを適切にループするにはどうすればよいですか?

分類Dev

アプリケーション内からJBossデータディレクトリにアクセスするにはどうすればよいですか?

分類Dev

バイナリファイルのみでディレクトリをバージョン管理するにはどうすればよいですか?

分類Dev

フィルタカスタムテンプレートを使用して、HTMLファイルからディクショナリ値にアクセスするにはどうすればよいですか?

分類Dev

テキストファイルからデータをインポートするときにPythonディクショナリの値をインクリメントするにはどうすればよいですか?

分類Dev

メニューボタンがクリックされるとすぐに、モバイルナビゲーションバーメニューの背景色を透明からインディゴにワードプレスで変更するにはどうすればよいですか?

分類Dev

アプリケーションディレクトリで生成されないように、サードパーティコンポーネントのDCUファイルを作成するにはどうすればよいですか?

分類Dev

最新のGNU / Linuxディストリビューションで古いバイナリを実行するにはどうすればよいですか?

分類Dev

ディープリンク用のタブとナビゲーションコントローラーを使用してビューコントローラーをインスタンス化するにはどうすればよいですか?

分類Dev

Mac AppStoreのosxアプリケーションにコマンドラインユーティリティをバンドルするにはどうすればよいですか(サンドボックスエンタイトルメントを使用)

分類Dev

MySqlパーティションのデータディレクトリを取得するにはどうすればよいですか?

分類Dev

データマトリックスのディメンションをコード行に挿入するにはどうすればよいですか?

分類Dev

Linuxのスクリプトで使用するパーティションのディスクを確認するにはどうすればよいですか?

分類Dev

ダブルクリックで監視可能なコレクションデータグリッドをテキストボックスにバインドするにはどうすればよいですか?

分類Dev

パンダのデータフレームをバイナリマトリックスに変更するにはどうすればよいですか?

分類Dev

クライアントマシンにアプリケーションをデプロイするために接続文字列にデータディレクトリを追加するにはどうすればよいですか?

分類Dev

Pythonディクショナリのアイテムをランダムな順序でループするにはどうすればよいですか?

分類Dev

AWS :: Serverless :: APIのAWSSAMテンプレートにリクエストバリデーターを追加するにはどうすればよいですか?

分類Dev

サーバー/クライアントのビデオおよびオーディオストリーミングアプリケーションをコーディングするにはどうすればよいですか?

分類Dev

ジャンプリンクワードプレスナビゲーションバーを追加するにはどうすればよいですか?

分類Dev

Signalを使用してPythonディクショナリをQMLインターフェイスに送信するにはどうすればよいですか?

分類Dev

テレリックアプリビルダープロジェクトからQRコードを取得して、スキャンしてデバイスからアプリケーションをプレビューできるようにするにはどうすればよいですか?

分類Dev

eコマースWebサイトでユーティリティバーとメインナビゲーションをセマンティックにマークアップするにはどうすればよいですか?

分類Dev

ソフトウェア「スタートアップディスククリエーター」を使用した結果、削除できないFlashのパーティションを克服するにはどうすればよいですか?

分類Dev

ストーリーボードでナビゲーションバーのタイトルを設定するにはどうすればよいですか?

分類Dev

カピバラのスクリーンショットをgitlabランナーからデジタルオーシャンキャッシュにアップロードするにはどうすればよいですか?

Related 関連記事

  1. 1

    リフレクションを介してプライベートメソッドとプライベートデータメンバーにアクセスするにはどうすればよいですか?

  2. 2

    オープン ソース ドライバーを使用して、すべてのアプリケーションをディスクリート GPU で実行/永続的に有効にするにはどうすればよいですか?

  3. 3

    C#ディクショナリで定義されたタイプをインポートするにはどうすればよいですか?

  4. 4

    Djangoでこのコンテキストディクショナリを適切にループするにはどうすればよいですか?

  5. 5

    アプリケーション内からJBossデータディレクトリにアクセスするにはどうすればよいですか?

  6. 6

    バイナリファイルのみでディレクトリをバージョン管理するにはどうすればよいですか?

  7. 7

    フィルタカスタムテンプレートを使用して、HTMLファイルからディクショナリ値にアクセスするにはどうすればよいですか?

  8. 8

    テキストファイルからデータをインポートするときにPythonディクショナリの値をインクリメントするにはどうすればよいですか?

  9. 9

    メニューボタンがクリックされるとすぐに、モバイルナビゲーションバーメニューの背景色を透明からインディゴにワードプレスで変更するにはどうすればよいですか?

  10. 10

    アプリケーションディレクトリで生成されないように、サードパーティコンポーネントのDCUファイルを作成するにはどうすればよいですか?

  11. 11

    最新のGNU / Linuxディストリビューションで古いバイナリを実行するにはどうすればよいですか?

  12. 12

    ディープリンク用のタブとナビゲーションコントローラーを使用してビューコントローラーをインスタンス化するにはどうすればよいですか?

  13. 13

    Mac AppStoreのosxアプリケーションにコマンドラインユーティリティをバンドルするにはどうすればよいですか(サンドボックスエンタイトルメントを使用)

  14. 14

    MySqlパーティションのデータディレクトリを取得するにはどうすればよいですか?

  15. 15

    データマトリックスのディメンションをコード行に挿入するにはどうすればよいですか?

  16. 16

    Linuxのスクリプトで使用するパーティションのディスクを確認するにはどうすればよいですか?

  17. 17

    ダブルクリックで監視可能なコレクションデータグリッドをテキストボックスにバインドするにはどうすればよいですか?

  18. 18

    パンダのデータフレームをバイナリマトリックスに変更するにはどうすればよいですか?

  19. 19

    クライアントマシンにアプリケーションをデプロイするために接続文字列にデータディレクトリを追加するにはどうすればよいですか?

  20. 20

    Pythonディクショナリのアイテムをランダムな順序でループするにはどうすればよいですか?

  21. 21

    AWS :: Serverless :: APIのAWSSAMテンプレートにリクエストバリデーターを追加するにはどうすればよいですか?

  22. 22

    サーバー/クライアントのビデオおよびオーディオストリーミングアプリケーションをコーディングするにはどうすればよいですか?

  23. 23

    ジャンプリンクワードプレスナビゲーションバーを追加するにはどうすればよいですか?

  24. 24

    Signalを使用してPythonディクショナリをQMLインターフェイスに送信するにはどうすればよいですか?

  25. 25

    テレリックアプリビルダープロジェクトからQRコードを取得して、スキャンしてデバイスからアプリケーションをプレビューできるようにするにはどうすればよいですか?

  26. 26

    eコマースWebサイトでユーティリティバーとメインナビゲーションをセマンティックにマークアップするにはどうすればよいですか?

  27. 27

    ソフトウェア「スタートアップディスククリエーター」を使用した結果、削除できないFlashのパーティションを克服するにはどうすればよいですか?

  28. 28

    ストーリーボードでナビゲーションバーのタイトルを設定するにはどうすればよいですか?

  29. 29

    カピバラのスクリーンショットをgitlabランナーからデジタルオーシャンキャッシュにアップロードするにはどうすればよいですか?

ホットタグ

アーカイブ