我有一个DataGrid,第一列为文本列,第二列为CheckBox列.我想要的是,如果我单击复选框.它应该被检查.
但是,它需要两次单击才能被选中,首次单击该单元格将被选中,第二次单击该复选框将被选中.如何通过单击来选中/取消选中复选框.
我正在使用WPF 4.0.DataGrid中的列是AutoGenerated.
我正在Windows Presentation Foundation中构建一个数据网格,我遇到了问题.当用户双击数据网格中的单元格时,单元格将进入编辑模式.我想防止这种情况.相反,我希望用户能够选择整行 - 而不是编辑其中的值.
如何双击选择整行而不是将单击的单元格置于编辑模式?
我正在使用WPF DataGrid控件来显示一些细节和一个选择按钮,我不需要左侧的灰色选择器列.它也破坏了我的设计之美.
有没有办法删除它,或者我如何设置它以匹配,如果没有?
我有两个简单的Model类和一个ViewModel ...
public class GridItem
{
public string Name { get; set; }
public int CompanyID { get; set; }
}
public class CompanyItem
{
public int ID { get; set; }
public string Name { get; set; }
}
public class ViewModel
{
public ViewModel()
{
GridItems = new ObservableCollection<GridItem>() {
new GridItem() { Name = "Jim", CompanyID = 1 } };
CompanyItems = new ObservableCollection<CompanyItem>() {
new CompanyItem() { ID = 1, Name = "Company 1" },
new …Run Code Online (Sandbox Code Playgroud) 我想格式化我的字符串绑定,因为Amount is Xwhere X是绑定到标签的属性.
我见过很多例子,但以下内容不起作用:
<Label Content="{Binding Path=MaxLevelofInvestment,
StringFormat='Amount is {0}'}" />
Run Code Online (Sandbox Code Playgroud)
我也试过这些组合:
StringFormat=Amount is {0}
StringFormat='Amount is {}{0}'
StringFormat='Amount is \{0\}'
Run Code Online (Sandbox Code Playgroud)
我甚至尝试将绑定属性的数据类型更改为int,string和double.似乎没什么用.这是一个非常常见的用例,但似乎不受支持.
在我的XAML代码中,我想Background根据一个特定行中对象的值设置每一行的颜色.我有一个ObservableCollection的z,并且每个z有一个叫做财产State.我开始用这样的东西在我的DataGrid:
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background"
Value="{Binding z.StateId, Converter={StaticResource StateIdToColorConverter}}"/>
</Style>
</DataGrid.RowStyle>
Run Code Online (Sandbox Code Playgroud)
这是一种错误的方法,因为x不是我的ViewModel类中的属性.
在我的ViewModel类我有一个ObservableCollection<z>是在ItemsSource这DataGrid,和SelectedItem类型z.
我可以绑定颜色SelectedItem,但这只会改变一行DataGrid.
我如何根据一个属性更改此行backgroundcolor?
当DataGrid失去焦点时,如何设置WPF DataGrid的样式以更改所选行的颜色?
我在行选择模式中使用DataGrid(即SelectionUnit="FullRow").我只想删除当用户突出显示一行时为当前单元格放置的边框,以便进行真正的全行选择(并且不选择单元格级别).我不介意网格保持当前单元格的概念,我只想删除那个讨厌的当前单元格边界,可能是通过改变当前单元格的样式.最简单的方法是什么?
我看到很多关于如何在DataGrid中为Selected行设置样式的示例,例如:
我可以禁用选定的行样式吗?我不想要覆盖选择行更改的每一件事.只是不希望任何明显的变化.要比创建模板更简单.
要么..
禁用选择行,如果这更容易..但从浏览这个看似hacky的论坛
我试过这种方法..没有运气..
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
有没有办法获得行索引?我甚至试过了
<DataTrigger Binding="{Binding AlternationIndex}" Value="0">
<Setter Property="Foreground" Value="Green"></Setter>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud) wpf ×10
wpfdatagrid ×10
binding ×2
datagrid ×2
wpf-controls ×2
xaml ×2
.net ×1
cells ×1
styles ×1
wpf-4.0 ×1
wpftoolkit ×1