datagrid中的输入控件

时间:2014-01-02 17:50:22

标签: c# wpf xaml datagrid

如何控制用户在datagrid中输入的内容。 我需要能够控制每个DataGridTextColumn的输入。

如果可能的话,我希望能够在数据网格中输入字符时控制输入。所以列表框的选择是改变的。

可悲的是,我现在所做的不起作用。

<DataGrid AutoGenerateColumns="False" Grid.Row="1" ItemsSource="{Binding ContactList}" SelectedItem="{Binding SelectedContact,UpdateSourceTrigger=PropertyChanged}" CanUserAddRows="False">
        <DataGrid.Columns>
            <DataGridTextColumn Header="ID" Width="25" Binding="{Binding ID}" IsReadOnly="True"/>
            <DataGridTextColumn Header="Naam" Width="1*" Binding="{Binding Name}">
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="TextChanged">
                        <cmd:EventToCommand Command="{Binding TestCommand}" PassEventArgsToCommand="True"/>
                    </i:EventTrigger>
                </i:Interaction.Triggers>
            </DataGridTextColumn>
            <DataGridTextColumn Header="Bedrijf" Width="1*" Binding="{Binding Company}"/>
            <DataGridTemplateColumn Width="1*" Header="Functie">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox ItemsSource="{Binding JobRoleList}"  DisplayMemberPath="Name" SelectedItem="{Binding JobRole.Name,UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="ID" SelectedValue="{Binding JobRole.ID,UpdateSourceTrigger=PropertyChanged}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

感谢

编辑我得到一个XamlParceException XAML

<DataGridTemplateColumn Header="Naam" CellTemplate="{StaticResource ContactNameTemplate}" CellEditingTemplate="{StaticResource EditingContactNameTemplate}" />

字典

<DataTemplate x:Key="ContactNameTemplate" >
        <TextBox HorizontalAlignment="Center">
                <TextBox.Text>
                    <Binding Path="Name" Source="{Binding Name}" UpdateSourceTrigger="PropertyChanged">
                        <Binding.ValidationRules>
                            <c:Text Min="21" Max="130"/>
                        </Binding.ValidationRules>
                    </Binding>
                </TextBox.Text>
            </TextBox>
    </DataTemplate>
    <DataTemplate x:Key="EditingContactNameTemplate">
        <TextBox HorizontalAlignment="Center">
            <TextBox.Text>
                <Binding Path="Name" Source="{Binding Name}" UpdateSourceTrigger="PropertyChanged">
                    <Binding.ValidationRules>
                        <c:Text Min="21" Max="130"/>
                    </Binding.ValidationRules>
                </Binding>
            </TextBox.Text>
        </TextBox>
    </DataTemplate>

0 个答案:

没有答案