我有一个WPF项目,当我尝试在RowLoad事件上运行此代码我得到以下错误:
private void ParentGridView_OnRowLoaded(object sender, EventArgs e)
{
try
{
if(((RadGridView)sender).Columns != null)
{
MessageBox.Show(((RadGridView)sender).Columns.Count.ToString(CultureInfo.InvariantCulture));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
错误:Dispatcher处理已暂停,但仍在处理消息.
请注意,GridView控件是Telerik RadGridView
我在Silverlight项目中有一个RadGridView控件,并希望网格按名称列排序.我尝试将名称SortingState ="Ascending"放在名称的列定义上.我没有看到任何可能实现此目的的其他属性.有谁知道如何实现这一目标?
我使用Telerik的RadGridView在我WPF的应用程序.其中一列具有以下功能,
当用户更改列的值时,将command触发a作为事件并显示弹出窗口.使用弹出结果(是或否)我正在更新collection.
现在我在这里面临一个问题.
问题:
用户正在更改column其中一个的值,row并且在警报出现之前,他正在更改另一个row相同的值column.因此,应用程序以不同的方式工作,功能崩溃.
工作尝试:
disable事件触发后我尝试了网格,并在功能完成后启用.但即使在triggers他改变价值的事件之前,用户仍然非常快.
XAML:
<telerik:GridViewDataColumn Name="grdItemBuildColumn" DataMemberBinding="{Binding Build, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsReadOnlyBinding="{Binding IsEnable, Mode=OneWay, UpdateSourceTrigger= PropertyChanged}">
<telerik:GridViewDataColumn.CellEditTemplate> <DataTemplate>
<telerik:RadMaskedNumericInput Value="{Binding Build, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Mask="#1.0" Placeholder=" "
TextMode="PlainText" AllowInvalidValues="False" IsClearButtonVisible="False" AutoFillNumberGroupSeparators="False"ext:MaskedInputExtensions.Minimum="0" SelectionOnFocus="SelectAll" AcceptsReturn="False">
<i:Interaction.Triggers> <i:EventTrigger EventName="ValueChanged">
<i:InvokeCommandAction Command="{Binding BuidValueChangedCommand, Source={StaticResource MarketSeriesViewModel}}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</telerik:RadMaskedNumericInput>
</DataTemplate>
</telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>
Run Code Online (Sandbox Code Playgroud)
命令:
public ICommand BuidValueChangedCommand { get { return new RelayCommand(BuildValueChanged); } …Run Code Online (Sandbox Code Playgroud) 我有一个包含多个列的Telerik.WinControls.UI.RadGridView.我正在使用rowvalidation和cellvalidation的混合来验证我得到的输入(虽然对于当前问题我也尝试停用rowvalidation但仍然得到相同的结果).
我有一个daterow,我使用cellvalidating事件来验证它(否则如果用户键入错误的日期我得到一个例外).我期望的行为是显示错误消息并且未验证单元格.第二件事有效,但是当我将鼠标移动到单元格的边框上时,仅显示错误消息(否则它只是未显示).
所以我的问题是如何才能实现错误消息尽快显示并且只要通过验证发现错误?
这是我使用的cellvalidation代码:
void MainFormGridView_CellValidating(object sender, CellValidatingEventArgs eventArgs)
{
var currentCell = eventArgs.Row.Cells[eventArgs.ColumnIndex];
if (eventArgs.Column.Name == "OrderDate")
{
if (eventArgs.Value == null)
{
eventArgs.Cancel = true;
}
else
{
try
{
DateTime dateValue;
if (!DateTime.TryParse(eventArgs.Value.ToString(), out dateValue))
{
eventArgs.Cancel = true;
}
}
catch
{
// Error occured so validation error!
eventArgs.Cancel = true;
}
}
if (eventArgs.Cancel)
{
currentCell.ErrorText = "Error no valid date! Please type in a valid date";
}
else
{
currentCell.ErrorText = string.Empty;
}
} …Run Code Online (Sandbox Code Playgroud) 有没有办法在 RadGridView 子行中加载用户控件?我还需要在扩展行时将值传递给用户控件。
这是一个图像(它是由 ASP 而非 winforms 制作的)
如您所见,子行中有类似于用户控件的内容,用户可以在其中更好地编辑值。
如何用 RadGridView 实现这样的事情?
我在我的应用程序中使用Telerik RadGridView,它有一个GridViewSelectColumn项,允许我选择网格中的各种项目.我有一个按钮来操作此选项,但我不知道如何获取所选项目的列表.问题是我正在使用Caliburn.Micro的MVVM模式.我是否需要在视图中找到控件并遍历所选项目列表?对于一项简单的任务来说,这似乎是很多工作.我很感激任何想法.
在我使用公司控制的WinForms应用程序上. C#RadGridViewTelerik
这个RadGridView的一个列是类型的GridViewComboBoxColumn.我想给这个列DataSource填充在运行时,然后设置组合框(的三个重要特性DataSource,DisplayMember,ValueMember).
我怎样才能以编程方式执行此操作?
我试过了
DataGridViewComboBoxColumn comboIBAN =
rgvCheques.Columns["clmnIBAN"] as DataGridViewComboBoxColumn;
Run Code Online (Sandbox Code Playgroud)
但它最终会出现以下错误

如何设置要在启动时排序的网格列?我似乎无法在RadGridView上找到一个属性来告诉它我希望Column 1在启动时排序降序.网格只是没有排序.
我有一个带有以下代码的rad网格
<telerik:GridTemplateColumn>
<ItemTemplate>
<asp:LinkButton ID="Delete" Text="Remove »"
CommandArgument='<%# Eval("ApartmentId") %>'
CommandName="RemoveItem" CssClass="Button" runat="server" />
</ItemTemplate>
</telerik:GridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
和.CS代码如下
protected void radGrid_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Page")
{
}
else
{
if (e.CommandName == "RemoveItem")
{
Apartments apartAdmin = new Apartment();
bool deleted = apartAdmin.Delete(int.Parse(e.CommandArgument.ToString());
if (deleted)
{
radGrid.Rebind();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我调试它时,假设我将断点添加到此事件中,它永远不会被触发,就像是因为某些原因它没有看到事件...任何人都可以看到问题可能是什么?这是顶部网格的标记
<telerik:RadGrid ID="radGrid" ShowFooter="true" ShowHeader="true" CaptionAlign="Left"
runat="server" ForeColor="Black" CellPadding="4" AutoGenerateColumns="False"
CssClass="Grid" Width="100%" GridLines="None" OnRowCommand="radGrid_RowCommand"
OnNeedDataSource="radGrid_NeedDataSource" AllowPaging="True" AllowSorting="true">
<MasterTableView DataKeyNames="ApartmentID,ApartmentTypeID">
<CommandItemSettings ShowRefreshButton="true" ShowAddNewRecordButton="false" />
<Columns>
<telerik:GridTemplateColumn>
<ItemTemplate> …Run Code Online (Sandbox Code Playgroud) 我想有能力选择单元格和选择行。为了选择单元格,我设置了 SelectionUnit="Cells" 和 SelectionMode="Extended"。它工作正常。但现在我需要能够选择行。用户可以通过行标题(在行的左侧)选择行。
如何轻松实现?
radgridview ×10
telerik ×9
c# ×6
wpf ×4
winforms ×2
.net ×1
asp.net ×1
default ×1
gridview ×1
messagebox ×1
mvvm ×1
radgrid ×1
selecteditem ×1
silverlight ×1
sorting ×1
telerik-grid ×1
validation ×1