2017-01-09 1 views
0

問題があります。 ItemsSourceプロパティをNumericUpDownにバインドするにはどうすればいいですか?この方法では動作しません。どうも!NumericUpDown値バインディング

<DataGrid ItemsSource="{Binding Articles}"> 
    <DataGrid.Columns> 
      <DataGridTemplateColumn MinWidth="100" 
           Header="Amount" 
           MaxWidth="{Binding MinWidth, RelativeSource={RelativeSource Self}}"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <mahApps:NumericUpDown Value="{Binding Amount, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}"> 
         <i:Interaction.Triggers> 
          <i:EventTrigger EventName="ValueChanged"> 
           <i:InvokeCommandAction CommandParameter="{Binding}" 
                 Command="{Binding DataContext.RefreshValuesCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}" /> 
          </i:EventTrigger> 
         </i:Interaction.Triggers> 
        </mahApps:NumericUpDown> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
    </DataGrid.Columns> 
</DataGrid> 

EDIT

FIRST:Cantidad(スペイン)=金額(英語)

enter image description here enter image description here

+0

可能な複製(http://stackoverflow.com/questions/6709126/how-make-two-way-binding-numericupdown-to-member- [双方向メンバークラスにNumericUpDownを結合を作る方法]クラス) –

+0

何がうまくいかない?特定のエラー、つまりバインディングItemsSourceの出力、またはそれが動作していて内部バインディングが機能していませんか? Snoopを実行して、どのデータバインディングが失敗したかを確認してください。 – LordWilmore

+0

私がしようとしていることは:私はアイテムのリストを持っており、私は "Amount"を数値で表示したいのです。 Amountを変更すると、すべての価格を再計算するコマンドが実行されます。私は、それぞれの数値アップダウンをアイテムのそれぞれの「金額」にバインドする必要があります。編集して、より多くのコードと画像を表示してください。 エラー:型 "System.Windows.Controls.DataGrid"のデータコンテキストで "Amount"プロパティを解決できません。 – avechuche

答えて

1

額プロパティは、記事のプロパティと同じクラスに定義されている場合DataGridのDataContext(DataContext.Amount)にバインドする必要があります。

<mahApps:NumericUpDown Value="{Binding DataContext.Amount, UpdateSourceTrigger=PropertyChanged, 
    RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="ValueChanged"> 
      <i:InvokeCommandAction CommandParameter="{Binding}" 
            Command="{Binding DataContext.RefreshValuesCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}" /> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</mahApps:NumericUpDown> 

金額プロパティは、データオブジェクト(条または何でもあなたはそれを呼び出す)クラスに定義されている場合は、単純です:

<mahApps:NumericUpDown Value="{Binding Amount}"> 

編集:またのPropertyChangedへの結合のUpdateSourceTriggerを設定する必要があります:

<mahApps:NumericUpDown Value="{Binding Amount, UpdateSourceTrigger=PropertyChanged}" /> 
+0

応答のThx。私はすでにその2つの方法を試して、それは動作しませんでした。 AmountはArticle(クラス)プロパティです。記事はItemSourceで使用するobservableCollectionです。 – avechuche

+0

プロパティが* public *で、タイプがdoubleであることを確認してください。 – mm8

+0

単純な列を使用する場合、 完全に動作します。もちろん、これで私は値を表示して変更することはできません。 – avechuche

関連する問題