1

画像とテキストを含むボタンを作成し、ButtonCommandViewModel へのバインディングを使用しようとしています。Image をバインドするには、ButtonCommandViewModel でどのようなプロパティが必要で、MVVM の概念に準拠しますか? 画像、URL、または画像タグがコンバーターを介して実行できる文字列のようなものを用意する必要がありますか?

 <Button Command="{Binding Command}">
     <Button.ContentTemplate>
         <DataTemplate>
             <StackPanel>
                 <Image />
                 <TextBlock Text="{Binding DisplayName}" />
             </StackPanel>
         </DataTemplate>
     </Button.ContentTemplate>
 </Button>

上記の xaml は、アイテム テンプレートに使用しようとしているものです。

4

3 に答える 3

5

Source型の Image コントロールのプロパティをバインドする必要がありますImageSource

WPF には、バインディング コンバーターを必要としない、 からstringへの型変換が組み込まれています。Uribyte[]ImageSource

URI 文字列またはバイト配列 (PNG などのエンコードされたビットマップ フレームを含む) から画像を作成できる限り、好みのプロパティ タイプを選択できます。string最も単純なものかもしれませんが、他のものも完全に合法です。

ただし、ViewModel が画像を動的に作成する場合ImageSource(または派生型) は、通常、バインディング コンバーターを使用しないより適切なオプションです。

于 2013-10-01T13:45:10.690 に答える
1

はい、Uri/string (私は Uri の方が好きです) を使用して、Image.Source プロパティをデータバインドします。

<Image Source="{Binding SourceUri}" />

それに加えて、次の点に注意してください。1. プロジェクトにイメージを追加するときは、ビルド アクションが「リソース」に設定されていることを確認します。2. 別のプロジェクトから画像にアクセスする場合は、pack Uriを使用します。

于 2013-10-01T16:06:46.603 に答える