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) 我是WPF的新手.我想使用日期时间选择器.我从下面的网站下载了"Extended WPF Toolkit - 1.9.0".
http://wpftoolkit.codeplex.com/releases/view/96972
我有解压缩文件,发现两个DLL.一个是"WPFToolkit.dll"和"Xceed.Wpf.Toolkit.dll".
现在如何在我的项目中添加这两个dll?以及如何在我的项目中使用datetime控件.
我正在尝试使用WPF组合框(在WPFToolkit Datagrid中),并且我无法正确对齐所有部分.我正在使用Linq to Entities,我将整个datacontext设置为Linq查询的结果:
private void LoadDonationGrid()
{
donationGrid.ItemsSource = from donations in entities.Donation
.Include("Family")
.Include("PledgeYear")
.Include("DonationPurpose")
from donationPurposes in entities.DonationPurpose
select new { donations, donationPurposes };
}
Run Code Online (Sandbox Code Playgroud)
我的代码隐藏中也有一个页面属性,它为组合框提供了ItemsSource:
private IEnumerable donationPurposeList;
public IEnumerable DonationPurposeList
{
get
{
if (donationPurposeList == null)
{
donationPurposeList = from dp in entities.DonationPurpose
select dp;
}
return donationPurposeList.ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
组合框的XAML如下所示:
<tk:DataGridTemplateColumn Header="Purpose">
<tk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=donations.DonationPurpose.Description, Mode=TwoWay}" />
</DataTemplate>
</tk:DataGridTemplateColumn.CellTemplate>
<tk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox Name="cboDonationPurpose"
SelectedValue="{Binding Path=donations.DonationPurposeID, Mode=TwoWay}"
ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type Page},Mode=FindAncestor},Path=DonationPurposeList}"
DisplayMemberPath="Description" …Run Code Online (Sandbox Code Playgroud) 我有一个WPFToolkit DataGrid.它有DataGrid.RowDetailsTemplate.我需要这样做,当点击一个按钮时,它必须展开/折叠.
<Custom:DataGrid RowDetailsVisibilityMode="VisibleWhenSelected" SelectionMode="Extended" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeRows="False" CanUserSortColumns="False">
<Custom:DataGrid.RowDetailsTemplate>
<DataTemplate>
<Custom:DataGrid>
<Custom:DataGrid.Columns>
<Custom:DataGridTextColumn Binding="{Binding idClient, Mode=Default}" Header="??" IsReadOnly="True"/>
<Custom:DataGridTextColumn Binding="{Binding name_client, Mode=Default}" Header="???" IsReadOnly="True"/>
</Custom:DataGrid.Columns>
</Custom:DataGrid>
</DataTemplate>
</Custom:DataGrid.RowDetailsTemplate>
<Custom:DataGrid.Columns>
<Custom:DataGridTemplateColumn>
<Custom:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Expander IsExpanded="True"/>
</DataTemplate>
</Custom:DataGridTemplateColumn.CellTemplate>
</Custom:DataGridTemplateColumn>
<Custom:DataGridTextColumn Binding="{Binding idPartner, Mode=Default}" Header="??" IsReadOnly="True"/>
<Custom:DataGridTextColumn Binding="{Binding name_partner, Mode=Default}" Header="???" IsReadOnly="True"/>
</Custom:DataGrid.Columns>
</Custom:DataGrid>
Run Code Online (Sandbox Code Playgroud) 我正在为另一个应用程序Autodesk Revit开发一个加载项,它是作为一个单独的DLL类库构建的.我正在尝试在我的一个WPF窗口中使用Wpf工具包属性网格.属性网格在Visual Studio中显示正常,而intellisense也可以.但是当我尝试使用加载项加载启动Revit时,我得到以下异常.
System.Windows.Markup.XamlParseException occurred
HResult=-2146233087
Message=Could not load file or assembly 'Xceed.Wpf.Toolkit, PublicKeyToken=3e4669d2f30244f4' or one of its dependencies. The system cannot find the file specified.
Source=PresentationFramework
LineNumber=133
LinePosition=27
StackTrace:
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
InnerException: System.IO.FileNotFoundException
HResult=-2147024894
Message=Could not load file or assembly 'Xceed.Wpf.Toolkit, PublicKeyToken=3e4669d2f30244f4' or one of its dependencies. The system cannot find the file specified.
Source=mscorlib
FileName=Xceed.Wpf.Toolkit, PublicKeyToken=3e4669d2f30244f4
FusionLog==== Pre-bind state information ===
LOG: User = GLOBAL\eric.anastas …Run Code Online (Sandbox Code Playgroud) 我需要将某些WPF Datagrid行显示为只读或不依赖于绑定模型上的属性.
如何才能做到这一点?
当我的用户通过DatePicker中的Calander控件选择日期时,该值将正确绑定到基础对象.但是,如果用户在DatePicker中键入日期,则单击按钮,文本不会设置为SelectedDate属性.
用户必须从DatePicker中的TextBox中移除光标,以便更新绑定对象.
<toolkit:DatePicker Name="_dpField" Grid.Column="1" MinWidth="100"
ToolTip="{Binding Path=ToolTipText}"
TextInput="_dpField_TextInput"
SelectedDate="{Binding Path=Value, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)
救命!如何确保在按钮事件代码中使用此类型的值?
谢谢!
我有一个项目与XmlDataProvider绑定到WPF DataGrid控件.我在DataGrid上的绑定设置如下:
<dg:DataGrid ItemsSource="{Binding Source={StaticResource XmlData}, XPath=Root/People/Person}"
AutoGenerateColumns="False">
<dg:DataGrid.Columns>
<dg:DataGridTextColumn Header="ID" Binding="{Binding XPath=ID}"/>
<dg:DataGridTextColumn Header="Name" Binding="{Binding XPath=Name}"/>
</dg:DataGrid.Columns>
</dg:DataGrid>
Run Code Online (Sandbox Code Playgroud)
用户可以使用DataGrid编辑条目而不会出现任何问题.我无法实现的是允许用户使用DataGrid添加新行(即新Person).我怎么能允许这个?
我在我正在使用的其中一个应用程序中使用WPF Toolkit Datagrid.我想要的是将列宽和displayindex存储为用户首选项.我已经获得了list displayindex但是为了调整大小,我在datagrid上找不到任何事件,这会在列大小更改后触发.我已经尝试了"SizeChanged"事件,我猜这个事件只是在它最初计算大小时被触发,而且对于整个数据网格也是如此,而不是针对各个列.
任何替代解决方案或任何人都知道该事件?
我在WPF中有一个数据网格,我绑定到一个对象.
我有一个DataGridCheckBoxColumn,我希望用户能够通过并勾选他们想要的那些.问题是他们必须点击两次,一次选择然后再次检查/取消选中.你究竟怎么把它关掉,我一直在寻找方法来寻找答案.datagrid具有SelectionMode和SelectionUnit属性 - 两者都不接受'none'或'go away'
任何帮助表示赞赏!我的代码在下面供参考
<my:DataGrid Margin="15" Name="dgPreview"
AutoGenerateColumns="False" CanUserSortColumns="True"
CanUserDeleteRows="True"
Background="White"
ColumnHeaderHeight="20"
VerticalScrollBarVisibility="Visible"
RowDetailsVisibilityMode="Visible"
>
<my:DataGrid.Columns>
<my:DataGridCheckBoxColumn MinWidth="50" Width="Auto" Header="Include" Binding="{Binding Include}" />
<my:DataGridTextColumn MinWidth="50" Width="Auto" Header="Override #" Binding="{Binding OverrideNumber}" />
<my:DataGridTextColumn MinWidth="220" Width="*" Header="Name" Binding="{Binding Name}" />
<my:DataGridTextColumn MinWidth="50" Width="Auto" IsReadOnly="True" Header="Preview" Binding="{Binding Preview}" />
</my:DataGrid.Columns>
</my:DataGrid>
Run Code Online (Sandbox Code Playgroud) wpf ×10
wpftoolkit ×10
c# ×6
datagrid ×4
xaml ×2
.net ×1
asp.net ×1
combobox ×1
data-binding ×1
datepicker ×1
dll ×1
readonly ×1
revit ×1
revit-api ×1
text ×1
wpfdatagrid ×1