2017-01-09 218 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> 

編輯

FIRST:Cantidad(西班牙語)=金額(英文)

enter image description here enter image description here

+0

的可能的複製[如何實現雙向綁定的NumericUpDown到成員類](http://stackoverflow.com/questions/6709126/how-make-two-way-binding-numericupdown-to-member-類) –

+0

究竟是不行的?你是否有特定的錯誤,即綁定ItemsSource的輸出,或者是工作和內部綁定不起作用?考慮運行Snoop來查看哪些數據綁定失敗。 – LordWilmore

+0

我想要做的是:我有一個項目列表,我想使用numericupdown更改「金額」。當您更改「金額」時,會執行一個重新計算所有價格的命令。我需要將每個numericupdown綁定到項目的每個「金額」。去編輯看更多的代碼和圖像。 錯誤:無法解析類型爲「System.Windows.Controls.DataGrid」的數據上下文中的屬性「數量」 – 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用於響應。我已經嘗試了這兩種方法,但沒有奏效。金額是文章(類)屬性。文章是我在ItemSource中使用的observableCollection。 – avechuche

+0

確保該屬性是* public *和double類型。 – mm8

+0

如果我使用一個簡單的列 它可以很好地工作。當然,我只能設法顯示一個值,而不是改變它。 – avechuche