2016-12-18 9 views
0

私はこのコントロールを自分のXAMLで使用しています。ボタンを押したときに量を増減したいだけでなく、click_eventから直接観察可能なコレクションにアクセスし、値? 私は親のitemsourceに到達しようとしたが、私はそれを動作させる方法について見当もつかない...xamlのバインド値を増減する

<Grid Grid.Column="2"> 
               <Grid.ColumnDefinitions> 
                <ColumnDefinition Width="1*" /> 
                <ColumnDefinition Width="1*" /> 
                <ColumnDefinition Width="1*" /> 
               </Grid.ColumnDefinitions> 
               <Button VerticalAlignment="Center" 
                 HorizontalAlignment="Center" 
                 Content="-" 
                 Click="Button_Click" /> 
               <TextBlock Grid.Column="1" 
                  VerticalAlignment="Center" 
                  HorizontalAlignment="Center" 
                  Text="{x:Bind quantity}" /> 
               <Button Grid.Column="2" 
                 VerticalAlignment="Center" 
                 HorizontalAlignment="Center" 
                 Content="+" /> 
              </Grid> 

enter image description here

を、ここであなたは、元の構造を見ることができます:

menu.Add(new MainCategories() { CategoryName = "tittle2", Visible = false }); 
      menu[1].SubMenuItems.Add(new Dishes() { dishName = "dishab", dishPrice = 13, quantity = 0 }); 
+0

私は自分のUserControlを作成し、ビューとビューモデルを作成します。その後、ObeservableCollectionにはいくつかのviewmodelアイテムが含まれています。そして、ボタンのアクションは – RTDev

答えて

0

あまり変えずにそれを行うための迅速かつ汚い方法は次のようになります。

をボタンクリックイベントの送信者はしかし、あるべきあなたがキャストできるトンタイプです。

このボタン(送信者)のDataContextプロパティは、テキストブロック内のQuantityを取得するためにバインドする任意の型にキャストできます。これを増やすことができます。

しかし、MVVMとCommandingを調べることをお勧めします。

+0

を含むコントロール内で実装されます。確かにこれを行う簡単な方法ですが、あなたが汚れていると言うように...コードが理解しにくいか、性能が悪いので汚いですか? –