小编Raf*_*nte的帖子

WPF如何使用验证和绑定创建自定义文本框

我正在开发一个用于货币编辑的自定义文本框.
我已经看到一些准备使用它们,但它们很复杂和/或实际上不可用,迫使你做坏事(比如硬编码应该在控件上使用的名称).
所以我决定自己做,但是我无法使用绑定选项,因为分配给绑定属性的属性必须是小数,但TextBox控件的Text属性接受字符串.
我想的答案可能是覆盖基类(TextBox)中Text属性的访问方法(getter和setter),但是不允许这样做.
我的绑定应该设置为值,它设置TextBox的text属性将其格式化为文本(带有货币符号和所有内容),但将其转换回Get方法上的数值数据类型.
这是我到目前为止所取得的成就:

public class CurrencyTextBox : TextBox
    {
        private bool IsValidKey(Key key)
        {
            int k = (int)key;
            return ((k >= 34 && k <= 43) //digits 0 to 9
                || (k >= 74 && k <= 83) //numeric keypad 0 to 9
                || (k == 2) //back space
                || (k == 32) //delete
                );
        }
        private void Format()
        {
            //formatting decimal to currency text here
            //Done! no problems here
        }
        private void FormatBack()
        {
            //formatting currency …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml binding custom-controls

1
推荐指数
2
解决办法
1万
查看次数

标签 统计

binding ×1

c# ×1

custom-controls ×1

wpf ×1

xaml ×1