WPF を使用して C# で単純なレジスタを開発しようとしています。製品用のボタンがあり、(キーボード ショートカットまたはマウス ボタンを使用して) ボタンを押すと、製品が注文されます。所有している (データベースから読み込まれる) 製品の数がわからないので、固定ソリューションは必要ありません。Listbox
オブジェクトへのバインドを介してこれらのボタンを表示することができました。
<ListView.ItemTemplate>
<DataTemplate>
<UniformGrid>
<Button Template="{DynamicResource ButtonBaseControlTemplate1}" Style="{StaticResource ButtonStyle1}" Command="{Binding OrderCommand}" CommandParameter="{Binding}">
<Button.Background>
<ImageBrush ImageSource="{Binding PictureUrl}" />
</Button.Background>
<DockPanel>
<TextBlock Text="{Binding Name}" FontSize="30" DockPanel.Dock="Top" HorizontalAlignment="Center" Margin="0, 25, 0, 0"/>
<TextBlock Text="{Binding Price}" FontSize="15" HorizontalAlignment="Left" Margin="5"/>
<TextBlock Text="{Binding Shortcut}" FontSize="15" HorizontalAlignment="Right" DockPanel.Dock="Bottom" VerticalAlignment="Bottom" Margin="5"/>
</DockPanel>
</Button>
</UniformGrid>
</DataTemplate>
</ListView.ItemTemplate>
a のバインドはCommand
機能しません。ボタンをクリックしても何も起こりません。イベントを使用するとClicked
、すべて正常に動作しますが、ボタンにバインドされたオブジェクトがパラメータとして必要です。
これが私のコマンドプロパティです:
public RelayCommand OrderCommand
{
get
{
return new RelayCommand((p) => MessageBox.Show("Test"), (p) => true);
}
}
MessageBox
すべてが意図したとおりに機能する場合は、 「テスト」が表示されるはずです。
事前にご協力いただきありがとうございます。
よろしく、ステファン