3
我想做一個綁定組來計算,如果一行是基於數據網格中的3個文本框有效。XAML綁定組
我創建了一個有效性規則類,然後在我的DataGrid我:
<DataGrid.BindingGroup>
<BindingGroup Name="RowBindingGroup">
<BindingGroup.ValidationRules>
<util:MinMaxParValidationRule ValidationStep="CommittedValue" />
</BindingGroup.ValidationRules>
</BindingGroup>
</DataGrid.BindingGroup>
和
<TextBox.Text>
<Binding Path="ParStockLevel" UpdateSourceTrigger="PropertyChanged" BindingGroupName="RowBindingGroup" />
</TextBox.Text>
我的驗證規則類的樣子
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
ValidationResult result = ValidationResult.ValidResult;
BindingGroup bindingGroup = (BindingGroup)value;
StockInformationDVM row = (StockInformationDVM)bindingGroup.Items[0];
現在,當我運行應用程序進入驗證規則類的值始終是我的datagrid,nev中的第一行呃正在驗證的行(除非你正在驗證第一行!)
我沒有做過之前,我發現沒有使用MVVM的例子,所以可能有問題。
感謝您的快速響應,不幸的是,它並沒有正常工作,似乎bindingGroup.Items [0];現在不是行綁定到的項目的類型,而是啓動ViewModel的ViewModel數據網格在 – Purplegoldfish 2011-03-03 10:29:40
@Purplegoldfish - 這很奇怪,因爲我剛剛創建了一個測試項目,並且一切都很好......您是否使用'DataGridTemplateColumn '綁定?請仔細檢查行確實是否有'StockInformationDVM'類型的對象作爲它們的'DataContext'。 – 2011-03-03 12:26:05
我正在使用DataGridTemplateColumn作爲列,並且ItemsSource被清零地綁定到StockInformationDVM。我沒有在DataGrid上指定DataContext =「」,但我認爲ItemsSource集足夠了。 – Purplegoldfish 2011-03-03 13:36:07