C# 检查动态创建的两个小数点之间的有效值-MVVM
这个问题与这个帖子有关: 两个DoubleUpDown是动态创建的。如何根据最大值和最小值检查这两者之间的有效性。(最大值[第一控制]不能低于最小值[第二控制]) XAML代码:C# 检查动态创建的两个小数点之间的有效值-MVVM,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,这个问题与这个帖子有关: 两个DoubleUpDown是动态创建的。如何根据最大值和最小值检查这两者之间的有效性。(最大值[第一控制]不能低于最小值[第二控制]) XAML代码: <Window ....> <Window.DataContext> <local:ViewModel> </Window.DataContext> <StackPanel> <ItemsControl ItemsSourc
<Window ....>
<Window.DataContext>
<local:ViewModel>
</Window.DataContext>
<StackPanel>
<ItemsControl ItemsSource="{Binding ListOfControls}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<xctk:DoubleUpDown Value={Binding Value, ValidationOnDataErrors=True" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</Window>
谢谢如果您总是创建两个控件,一个用于最大值,另一个用于最小值,那么使用
ItemsControl
是没有意义的,因为控件的数量毕竟不是动态的
因此,请删除ItemsControl
,并使用我在上一个问题中建议的方法:
<Window ....>
<Window.DataContext>
<local:ViewModel>
</Window.DataContext>
<StackPanel>
<xctk:DoubleUpDown Value="{Binding Min, ValidationOnDataErrors=True" />
<xctk:DoubleUpDown Value="{Binding Max, ValidationOnDataErrors=True" />
</StackPanel>
</Window>
ItemsControl
在这里似乎不是正确的选择。如果总是有两个DoubleUpDown控件,那么使用ItemsControl有什么意义?没有。是否有任何方法可以使用ItemsControl进行此操作?因为这就是我现在拥有的。使用ItemsControl来显示两个控件是没有意义的。如何将Value属性映射到min或max?我知道。。但这只是一个例子。在我的实际应用程序中,我用itemscontrol创建了多达8个控件,那么你的问题就没有多大意义了。如果您有8个控件,哪个是最小值,哪个是最大值。。。?
public class CreateControl : IDataErrorInfo, INotifyPropertyChanged
{
private double _value;
public double Value
{
get { return _value; }
set { _value = value; }
}
public string Error { get { return null; } }
public string this[string columnName]
{
get
{
// Error handling code here
return null;
}
}
PropertyChanged Event ...
}
<Window ....>
<Window.DataContext>
<local:ViewModel>
</Window.DataContext>
<StackPanel>
<xctk:DoubleUpDown Value="{Binding Min, ValidationOnDataErrors=True" />
<xctk:DoubleUpDown Value="{Binding Max, ValidationOnDataErrors=True" />
</StackPanel>
</Window>