小编Joh*_*nlu的帖子

DataGridTemplateColumn中的自定义控件

我想将自定义控件添加到数据网格的模板列中.

自定义控件与文本框非常相似,但其中包含一个图标.用户可以单击该图标,并从提示窗口中选择一个项目,然后所选项目将填充到文本框中.

我的问题是当文本框填满时,单击第二列后,文本将消失.如果我用简单的文本框替换自定义控件,结果是相同的.

以下是示例代码:

 //Employee.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace SimpleGridTest
    {
        public class Employee
        {
            public string Department { get; set; }
            public int ID { get; set; }
            public string Name { get; set; }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Mainwindow.xaml

<Window x:Class="SimpleGridTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <DataGrid x:Name="grid" Grid.Row="1" Margin="5" AutoGenerateColumns="False"
                  RowHeight="25" RowHeaderWidth="10" 
                  ItemsSource="{Binding}"
                  CanUserAddRows="True" CanUserSortColumns="False">

            <DataGrid.Columns>
                <DataGridTemplateColumn Header="Department" Width="150">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding Department}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

                <DataGridTextColumn Header="ID" Binding="{Binding Path=ID}"                                    
                                    Width="100"/> …
Run Code Online (Sandbox Code Playgroud)

wpf datagrid custom-controls datagridtemplatecolumn

4
推荐指数
1
解决办法
6077
查看次数