标签: datagridtemplatecolumn

WPF DataGridTemplateColumn组合框更新所有行

我有这个XAML,它从ItemSource是一个Enum的组合框中选择一个值。我使用的教程是:

http://www.c-sharpcorner.com/uploadfile/dpatra/combobox-in-datagrid-in-wpf/

            <DataGrid x:Name="dgProductItem" 
                   ItemsSource="{Binding ProductVersion.ProductItems}"

            <DataGridTemplateColumn Header="Deployment Type" Width="120">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding DeploymentType}"></TextBlock>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <ComboBox ItemsSource="{Binding Source={StaticResource DeploymentTypeEnum}}"
                                  SelectedItem="{Binding DeploymentType}">

                        </ComboBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
Run Code Online (Sandbox Code Playgroud)

但是,当我从一行更改值时,它将更新所有行。有人知道为什么吗?

编辑:

如果我仅更改一行,则只会更新该行,但是当我更改另一行时,我刚刚更改的那一行也会更改上一行。

干杯

c# wpf xaml combobox datagridtemplatecolumn

3
推荐指数
1
解决办法
1323
查看次数

无法单击datagrid列标题

我用dataGridTemplateColumn创建了一个datagrid,我不能再使用click on header进行排序了.以下是我的代码示例:

       <DataGrid.Columns>
            <DataGridTemplateColumn Header="action id" Width="Auto">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Label Content="{Binding id}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

你知道出了什么问题吗?这是因为使用了默认排序被停用的模板吗?

谢谢,

J.

c# wpf datagrid datagridtemplatecolumn

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

DataGridTemplateColumn.CellTemplate 中的 wpf 绑定复选框命令

这已经被问过几次不同的变化,但我无法让他们中的任何一个工作。

当在我的视图中单击复选框(在 datagridTemplateColumn.cellTemplate 中)时,我试图在我的视图模型中调用一个方法

<DataGrid ItemsSource="{Binding TransactionTypes}" AutoGenerateColumns="False" CanUserAddRows="False" x:Name="TransTypesGrid">
<DataGrid.Columns>
    <DataGridTemplateColumn>
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <CheckBox IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                            Command="{Binding DataContext.UpdateCommand, ElementName=TransTypesGrid}" />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTextColumn Header="Transaction Type" Binding="{Binding TransTypeDesc}" />
</DataGrid.Columns>
Run Code Online (Sandbox Code Playgroud)

在我的 viewModel 中

public DelegateCommand UpdateCommand { get; set; }

public myConstructor()
{    
  this.UpdateCommand = new DelegateCommand(Update);
}

private void Update()
{
    //this stuff works, it's just not getting called when a checkbox get's (un)checked
    //stuff that goes though the DataGrid's item source's IsSelected property
}
Run Code Online (Sandbox Code Playgroud)

wpf datagridviewcheckboxcell mvvm datagridtemplatecolumn

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

可编辑的DataGrid-CanUserAddRows =“ True”不起作用

我有以下DataGrid:

 <DataGrid ItemsSource="{Binding EmployeeList}" CanUserAddRows="True" AutoGenerateColumns="False" Margin="0,0,0,90">
        <DataGrid.Columns>
            <DataGridTemplateColumn Header="CountryCombo2">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox ItemsSource="{Binding Path=DataContext.CountryList, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" 
                                      DisplayMemberPath="CountryName" 
                                      SelectedItem="{Binding EmployeeCountry, Mode=TwoWay}"
                                      SelectedValue="{Binding EmployeeCountry.CountryId}"
                                      SelectedValuePath="CountryId" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>
Run Code Online (Sandbox Code Playgroud)

但是,我无法向DataGrid添加新行。如果需要提供其他代码,请告诉我。

更新:

屏幕1:这是窗口刚加载了硬编码的属性值时的屏幕截图。现在,我看到了空的新行。

屏幕1

屏幕2:在这里,我已将数据添加到具有Rambo和Russia值的新行中。现在,无论我做什么(跳出,单击另一个单元格),都不会添加下一个新行。我认为应该添加一个新行。

屏幕2

屏幕3:此处新添加的行值已消失。那是因为我双击了两个空单元格之间的细边框。现在,这很奇怪。

屏幕3

屏幕4:现在,当我单击Peter单元格时,先前输入的行数据返回了,但是现在将其向下推并在其之前插入了一个新的空行。这很奇怪。

屏幕3

谁能帮助我了解DataGrid的这种行为。

wpf datagrid datagridtemplatecolumn

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

将枚举数据绑定到WPF中的ComboBox,过滤一些枚举

我需要将枚举绑定到DataGridTemplateColumn中的组合框,但只包含枚举所具有的一些选项.
示例:
枚举选项: 未知,,,,,所有
可绑定的:,,,

有什么办法吗?
非常感谢.

最好的祝福

wpf combobox datagridtemplatecolumn

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

抓取DataGridTemplateColumn中元素的引用

我一直在努力解决这个问题一段时间,似乎无法得到任何答案.我已经模拟了一个简单的XAML文件来演示这个问题(我没有提供我真正的XAML文件,因为它有比这个问题所需的更多).

这是我的问题:给定以下XAML文件,如何在代码隐藏中获取驻留在DataGridTemplateColumn.CellEditingTemplate DataTemplate中的selectHeight ComboBox的引用?我需要引用,以便我可以根据selectAge ComboBox中的选择更改ComboBox的属性.

<Window x:Class="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 Name="grdPeople"
                    AutoGenerateColumns="False"  
                    AlternatingRowBackground="LightBlue" 
                    CanUserAddRows="True" CanUserDeleteRows="True" IsEnabled="True"
                    MaxHeight="400" VerticalScrollBarVisibility="Auto">

        <DataGrid.Columns>
            <!--Name Column-->
            <DataGridTemplateColumn Header="MyName" CanUserReorder="False" CanUserResize="False"  CanUserSort="False" >
                <DataGridTemplateColumn.CellTemplate >
                    <DataTemplate>
                        <Label Content="{Binding Path=Name}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn.CellEditingTemplate >
                    <DataTemplate>
                        <TextBox Text="{Binding Path=Name}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
            </DataGridTemplateColumn>

            <!--Age Column-->
            <DataGridTemplateColumn Header="MyAge">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Label Content="{Binding Path=Age}"></Label>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <ComboBox Name="selectAge" ItemsSource="{Binding Path=AgeOpts}">
                            <ComboBox.ItemTemplate>
                                <DataTemplate>
                                    <Label Content="{Binding Path=Age}"></Label>
                                </DataTemplate>
                            </ComboBox.ItemTemplate>    
                        </ComboBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
            </DataGridTemplateColumn>

            <!--Height Column-->
            <DataGridTemplateColumn Header="MyHeight"> …
Run Code Online (Sandbox Code Playgroud)

wpf datagridtemplatecolumn

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

在 WPF Image 中鼠标悬停时显示不同的图像

我有一个datatemplate用于datagridtemplatecolumn
我试图在鼠标悬停在Image.
鼠标悬停时,光标在变化,但图像没有变化。

 <DataTemplate x:Key="MyDataTemplate" DataType="DataRowView">
        <StackPanel Orientation="Horizontal" Background="Transparent">
            <Image Margin="0,0,0,0"   Width="50" Height="50" Source="{Binding Converter={StaticResource SetImgToDG}}" ToolTip="{Binding}" >
                <Image.Resources>
                    <Style TargetType="{x:Type Image}">
                        <Style.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <!-- Hover image -->
                                <Setter Property="Cursor" Value="Hand"/>
                                <Setter Property="Source" Value="C:\Images\Coil3.png"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </Image.Resources>
            </Image>
        </StackPanel>
    </DataTemplate>  
Run Code Online (Sandbox Code Playgroud)

那个绑定会产生问题吗?
怎么解决??

c# wpf mouseover wpfdatagrid datagridtemplatecolumn

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