我有一个DataGrid带有a的WPF表单DataGridCheckBoxColumn,但我没有找到任何点击事件,检查并取消选中它...
这些活动是否适用于DataGridCheckBoxColumn?如果没有,请建议我可以使用的一些解决方法.
我想有一个水平方向的WPF DataGrid,有没有人知道解决方案?
我想使用DataGrid.CanUserAddRows = true功能.不幸的是,它似乎只适用于具有默认构造函数的具体类.我的业务对象集合不提供默认构造函数.
我正在寻找一种方法来注册一个知道如何为DataGrid创建对象的工厂.我看了一下DataGrid和ListCollectionView,但它们似乎都不支持我的场景.
我有一个可观察的集合绑定到数据网格.我还在视图模型中有一个color属性,我想将数据网格中每一行的背景绑定到vm上的color属性.
我有一个WPF DataGrid
<DataGrid AutoGenerateColumns="False" Name="dataGrid1" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="Site" Binding="{Binding Site}" Width="150" />
<DataGridTextColumn Header="Subject" Binding="{Binding Subject}" Width="310" />
</DataGrid.Columns>
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="Delete" Click="Context_Delete">
<MenuItem.Icon>
<Image Width="12" Height="12" Source="Images/Delete.png" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
我有点击事件处理程序:
private void Context_Delete(object sender, System.EventArgs e) { }
Run Code Online (Sandbox Code Playgroud)
如何在单击之前获取上下文菜单所在的行?该sender对象是System.Windows.Controls.MenuItem,不是DataGridRow.如何获取DataGridRow单击上下文菜单的位置.(我DataGrid.ItemSource在代码后面设置文件.)
DataGrid当一个列定制供应两者CellTemplate和时,我遇到了WPFToolkit的问题CellEditingTemplate.如果你看一下下面,你会看到我的编辑模板有一个CheckBox.在功能意义上一切都很好但是当点击F2来编辑单元格时,还必须点击TAB才能CheckBox获得焦点.理想情况下,人们会点击F2和SPACE来切换值.目前,必须打F2,TAB,SPACE.我试过设置TabIndex无济于事.我的想法已经不多了.
<WPFToolkit:DataGridTemplateColumn Header="Turn"
MinWidth="60">
<WPFToolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Height="16">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<DataTrigger Binding="{Binding CanTurn}" Value="True">
<Setter Property="Source" Value="/Images/16/Tick.png" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</DataTemplate>
</WPFToolkit:DataGridTemplateColumn.CellTemplate>
<WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=CanTurn}" HorizontalAlignment="Center" HorizontalContentAlignment="Center" />
</DataTemplate>
</WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
</WPFToolkit:DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud) 我正在使用.NET 3.5中的WPF工具包中的DataGrid.
我有一个datagrid列绑定到我的源对象的布尔属性.
该复选框正确调用boolean的属性get访问器.
但是,在选中或取消选中该框时,将调用get而不是set.
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Object, Source={StaticResource model}, Mode=TwoWay}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding BoolProperty, mode=TwoWay}"/>
</DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
当我使用带有Checkbox的DataGridTemplateColumn时,属性设置正确,但是创建一个漂亮的布局会更复杂.
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding BoolProperty, Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
使用DataGridCheckBoxColumn我做错了什么?
我需要根据datagrid中的参数和值隐藏datagrid中的行.我想要做这样的事情;
foreach (System.Data.DataRowView dr in myDataGrid.ItemsSource)
{
//Logic to determine if Row should be hidden
if (hideRow == "Yes")
{
//Hide row code
}
}
Run Code Online (Sandbox Code Playgroud)
我只是无法想象如何实际隐藏行.请注意我不想从数据网格或项目源中删除行.
我有这样的课
public class Foo
{
public string prop1 {get;set;}
public string prop1 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
和一个带有a的视图模型List<Foo>,这个列表被用作Bind一个DataGrid,然后在代码隐藏中我需要获取 Datagrid.SelectedItems集合并将其转换为List<Foo>
我尝试过的事情:
List<Foo> SelectedItemsList= (List<Foo>)DataGrid.SelectedItems;
// OR
object p = DataGrid.SelectedItems;
List<Foo> SelectedItemsList= ((IList)p).Cast<Foo>().ToList();
Run Code Online (Sandbox Code Playgroud)
所有这些方式编译但在运行时抛出异常.
施放它的正确方法是什么?
注意:基本类型DataGrid是这ObservableCollection是否有所不同?
当DataGrid的源更新时会触发哪个事件?我已经尝试过DataContextChanged和SourceUpdated,但它从未解决过.
其实我需要一个简单的事情.我想,如果有新行,请将GridView的滚动条向下滚动到底部以查看它是什么.
wpf ×10
wpfdatagrid ×10
datagrid ×6
c# ×4
data-binding ×2
events ×2
xaml ×2
.net-3.5 ×1
casting ×1
datagridview ×1
factory ×1
mvvm ×1
orientation ×1
wpf-4.0 ×1
wpf-controls ×1
wpftoolkit ×1