Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wpf maskedTextBox数据绑定_Wpf_Maskedtextbox - Fatal编程技术网

wpf maskedTextBox数据绑定

wpf maskedTextBox数据绑定,wpf,maskedtextbox,Wpf,Maskedtextbox,我在个人项目中使用以下MaskedTextBox供自己使用。这是一个简单的例子,因为我试图在一个更大的程序上使用它,但我用这个程序来测试这个控件 步骤: 1.创建wpf应用程序 2.向SQL添加了一个名为Prescriptions的Linq类,并添加了一个名为info的表 {ID | Name | Phone} 表单的标记如下所示: <Window x:Class="MaskedTest.MainWindow" xmlns="http://schemas.microsoft.com

我在个人项目中使用以下MaskedTextBox供自己使用。这是一个简单的例子,因为我试图在一个更大的程序上使用它,但我用这个程序来测试这个控件

步骤:
1.创建wpf应用程序
2.向SQL添加了一个名为Prescriptions的Linq类,并添加了一个名为info的表 {ID | Name | Phone}

表单的标记如下所示:

<Window x:Class="MaskedTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
    Title="MainWindow" Height="300" Width="300"
    Loaded="Window_Loaded">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="200"/>
    </Grid.ColumnDefinitions>
    <Label Name="nameLabel" Margin="2" Target="{Binding ElementName=nameTxt}">_Full Name</Label>
    <TextBox Name="nameTxt" Grid.Column="1" Margin="2" Text="{Binding Name}"/>
    <Label Name="phoneLabel" Margin="2" Grid.Row="1" Grid.Column="0" Target="{Binding ElementName=phoneTxt}">_Phone Numnber</Label>
    <xctk:MaskedTextBox Name="phoneTxt" Margin="2" Grid.Row="1" Grid.Column="1" Text="{Binding Phone}" Mask="(000) 000-0000" />
</Grid>

_全名
_电话号码

代码隐藏文件:

public partial class MainWindow : Window
{
    private PrescriptionDataContext pdc = new PrescriptionDataContext();
    private List<info> users = new List<info>();
    private info U = new info { Id = 1, Name = "Matthew Brown", Phone = "5128289081" };

    public MainWindow()
    {
        InitializeComponent();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        var q = pdc.getUser();

        foreach (info I in q)
        {
            users.Add(I);
        }

        // DOES NOT WORK
        this.DataContext = users;
        // WORKS
        // this.DataContext = U;
    }
}
公共部分类主窗口:窗口
{
private PrescriptionDataContext pdc=新PrescriptionDataContext();
私有列表用户=新列表();
私人信息U=新信息{Id=1,Name=“Matthew Brown”,Phone=“5128289081”};
公共主窗口()
{
初始化组件();
}
已加载私有无效窗口(对象发送器、路由目标)
{
var q=pdc.getUser();
foreach(信息I在q中)
{
用户。添加(I);
}
//不起作用
this.DataContext=用户;
//工作
//this.DataContext=U;
}
}
加载时,您将看到name字段已正确绑定,但phone控件仅显示掩码,而不显示表中的底层数据。如果我明确地创建类,然后像上面那样绑定它,它就会工作


想法???

用户
是一个集合<代码>U是单个对象<代码>用户没有您尝试绑定到的属性。使用
ItemsControl
ListView
或用于显示数据列表的内容。名称文本字段由单个用户或用户集合填充。仅当我设置单个用户时才显示Phone字段。在我的另一个程序中,它是一个列表视图数据的一部分,每天绑定一次,得到相同的结果。