2017-03-09 8 views
0

私はかなり新しいWPFで、2つの質問がありますか?WPF C#ボタンバインディングとテキストボックスからボタンバインディングへ

質問#1: 下のXAMLスナップから、「btnRed」というボタンがコードの背後にあります。ボタンをクリックすると、適切な表示が表示されます。しかし、同じことを「プログラム的に」実行する方法はありますか?したがって、私の次の質問。

質問#2: 「テキストボックス」と「ボタン」を同じように動作させる方法がわかりません。私がしようとしているのはこれです。 (1) "btnDisplayView"ボタンの "DataContext"にリンクされるテキストボックスを希望します。 (2)そのため、テキストボックスに「RedView」と入力してボタンをクリックすると、正しいビューが表示されます。

私の長期目標は、いくつかのテーブルを使ってデータベースを用意することです。 "MenuItems"のテーブルと "Views"のテーブル。ボタンを使用する代わりに、メニューコントロールを使用します。メニュー項目が選択されると、正しいビューが表示されます。

しかし、今のところ、私は小型でシンプルな、それを維持しようとしstartingsだ:

--------- WPF - XAML START --------------------------- 

<StackPanel Grid.Column="0" Orientation="Vertical"> 
    <TextBox x:Name="txtDisplayView" Height="23" Margin="5" TextAlignment="Center"/> 
    <Button x:Name="btnDisplayView" Content="Display" Margin="5" Click="btnDisplay_Click"/> 

    <Button x:Name="btnRed" Content="Red" Margin="5" DataContext="RedView" Click="Red_Click"/> 
</StackPanel> 

<StackPanel Grid.Column="1" Orientation="Vertical"> 
    <ContentControl Margin="5" Content="{Binding}"/> 
</StackPanel> 

-----------WPF - XAML END ------------------------- 

誰かがこの作業を取得する方法私を見ることができれば、それは私が正しい方向に私のプロジェクトを動かす役立つだろう非常に感謝しています。あなたがここに必要なもの

答えて

1

は次のとおりです。

  1. は、プロパティあなたのTextBox要素

に、次の2つのオプションを持っていることを選択した項目

  • バインドを表し、あなたのDataContext内のプロパティを作成します。一つは、「WPFフレンドリー」であり、他は、より多くのWindowsフォームっぽいです:

    1. コマンド(見at this articleを取る)を作成し、パラメータを読み込み、
    2. で前に作成したプロパティにバインドされますClickイベントでは、バインドされたプロパティの値を読み取ることができます。

    私は個人的に最初の解決策を選択します。どうして?たとえば、Menuに変更すると、メニュー項目にはリスト項目だけが表示されます(MenuItemクラスにはCommandプロパティも含まれているため、Buttonと同じ実装になります)。ソースを変更するだけです!

  • 関連する問題