首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将用户输入限制为wpf数据网格中的正整数

将用户输入限制为wpf数据网格中的正整数
EN

Stack Overflow用户
提问于 2012-11-16 20:41:18
回答 2查看 2.6K关注 0票数 1

我有一个数据网格,其中有一个关闭整型的quantity字段。现在我想限制我的用户只输入正整数。我不想要一个处理datagrid键事件的输入的解决方案。有什么建议吗?

这是我正在使用的转换器

代码语言:javascript
复制
public class ValueConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        { return value; }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (!OnlyPositiveIntergerAllowed(value.ToString()))
            {
                string s = Regex.Replace(value.ToString(), @"[^0-9]+", string.Empty);

                if(s=="")
                return 0;
                else
                    return s;

            }
           if (value is string && (string)value == "")
            {
                return 0;
            }

            return value;

        }
        private static bool OnlyPositiveIntergerAllowed(string text)
        {
            var regex = new Regex("[^0-9]+"); //regex that matches disallowed text
            return !regex.IsMatch(text);
        }
}

注意:它工作正常(例如,如果是123dasd。它在丢失的焦点上转换),但I允许用户输入(dasd.)。

EN

回答 2

Stack Overflow用户

发布于 2012-11-17 00:45:48

对于这种情况,您可以在Extended WPF Toolkit中使用DataGridTemplateColumnIntegerUpDown

示例:

代码语言:javascript
复制
            <DataGridTemplateColumn Header="Amount">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <toolkit:IntegerUpDown 
                                    Minimum="0"
                                    Value="{Binding Amount}"
                            />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

您也可以使用DecimalUpDown

票数 0
EN

Stack Overflow用户

发布于 2012-11-17 18:31:26

您所寻求的解决方案称为验证。

搜索WPF validation会提供大量链接,这里有一个看起来很不错的链接:http://wpftutorial.net/DataValidation.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13416790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档