Я использую telerik RadGridView
в своем приложении WPF
. Один из столбцов имеет следующую функциональность:Отключить сетку перед пожаром события WPF
Когда пользователь меняет значение столбца, а command
запускается как событие, и отображается поп. Используя всплывающий результат (Да или Нет), я обновляю 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>
Команда:
public ICommand BuidValueChangedCommand { get { return new RelayCommand(BuildValueChanged); } }
ViewModel:
private void BuildValueChanged()
{
// Ask confirmation for delete.
if (ShowMessages.MessageBox("This will be removed from the collection", "Application"))
{
DeleteItem(SelectedItem.Id)
}
else
{
Item bo = RestoreBuild(SelectedItem);
SelectedItem = bo;
}
}
мне просто нужно что-то вроде ре чтобы пользователь не менял второе значение до события triggers
, и он выбирает что-то (Да/Нет) из всплывающего окна.
Может кто-нибудь помочь мне с этим?
Я предлагаю вам создать свойство IsGridEnabled в вашей ViewModel и в начале набора команд IsGridEnabled = false, в конце набора команд IsGridEnabled = false. И, конечно, свяжите свою сетку.IsEnabled к этому свойству –
@ ВасилийШапенко: Пробовал это, но пользователь меняет значение даже до того, как будет запущено событие (команда). – iamCR
Использует ли ваш viewModel метод INotifyPropertyChanged? – ProgrammingDude