本文介绍了Datagrid文本框验证,用于MVVM中的数值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我被困在验证DataGrid列中的Textbox.
文本框应仅接受数字值.
XAML代码:
Hi,
I got stuck with validating Textbox which is in DataGrid column.
Textbox should accept only numeric values.
XAML code:
<UserControl x:Class="TestGrid.GridControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
>
<StackPanel >
<DataGrid GridLinesVisibility="Vertical" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"
MinHeight="100" MaxHeight="300" Width="Auto" Name="McDataGrid" Grid.Row="1" Grid.Column="2" AutoGenerateColumns="False" CanUserAddRows="False"
CanUserDeleteRows="False" ItemsSource="{Binding Path=TestData}" DataContext="{Binding}"
>
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding Path=IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False">
<DataGridCheckBoxColumn.Header>
<CheckBox Name="selectallchkbox3" IsChecked="{Binding DataContext.SelectAll1, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}},
UpdateSourceTrigger=PropertyChanged }"/>
</DataGridCheckBoxColumn.Header>
</DataGridCheckBoxColumn>
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name,Mode=OneWay}" IsReadOnly="True" Width="250"/>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=InstruQuantity, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="100" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</StackPanel>
</UserControl>
和模型查看代码:
And Model view code:
namespace ViewModel
{
public class Authors: ViewModel.ViewProperty
{
public Authors()
{
LoadCollectionData();
}
private DataTable authors = new DataTable();
public DataTable TestData
{
get
{
return authors;
}
}
public void LoadCollectionData()
{
DataColumn col = new DataColumn();
col.ColumnName = "Name";
col.DataType = typeof(string);
authors.Columns.Add(col);
DataColumn col2 = new DataColumn();
col2.ColumnName = "InstruQuantity";
col2.DataType = typeof(string);
authors.Columns.Add(col2);
DataColumn colcheck = new DataColumn("IsSelected", typeof(bool));
authors.Columns.Add(colcheck);
DataRow row1 = authors.NewRow();
row1[0] = "Ganga";
row1[1] = "10";
authors.Rows.Add(row1);
DataRow row2 = authors.NewRow();
row2[0] = "Bhagya";
row2[1] = "20";
authors.Rows.Add(row2);
}
private bool _SelectAll;
public bool SelectAll1
{
get { return _SelectAll; }
set {
_SelectAll = value;
OnPropertyChanged("SelectAll1");
SelectAll();
}
}
public void SelectAll()
{
if (SelectAll1 == true)
{
foreach (DataRow row in authors.Rows)
{
row["IsSelected"] = true;
}
}
else
{
foreach (DataRow row in authors.Rows)
{
row["IsSelected"] = false;
}
}
}
}
}
请任何人可以帮助我,如何验证数量"文本框??
Please anyone can help me, how to validate Quantity Textbox??
推荐答案
这篇关于Datagrid文本框验证,用于MVVM中的数值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!