前に、私はtelerik RadGridView
私WPF
アプリケーションでを使用しています。ユーザがcommand
をイベントとして焼成されている列の値を変更し、ポップが示されている場合、列の一つは、以下の機能、無効にグリッドイベント火災WPF
を有しています。ポップアップ結果(YesまたはNo)を使用して、collection
を更新しています。
今私はここでの問題に直面しています。
問題:
ユーザーがrow
の一つにそのcolumn
の値を変更していると警告が表示される前に、彼は同じcolumn
の別のrow
に変化しています。したがって、アプリケーションは異なる方法で動作し、機能は崩壊します。試してみました
仕事:
私は、イベントが発生したら、グリッドを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
まで2番目の値を変更しないようにし、彼はポップアップから何か(Yes/No)を選択します。
誰かがこれで私を助けることができますか?
ViewModelでIsGridEnabledプロパティを作成し、コマンドセットIsGridEnabled = falseの最後にコマンドセットIsGridEnabled = falseの最後にプロパティを作成することをお勧めします。もちろん、あなたのグリッドをバインドしてください。このプロパティに有効にしてください –
@ВасилийШапенко:試してみましたが、イベント(コマンド)が発生する前でも値を変更しようとしました。 – iamCR
あなたのviewModelはINotifyPropertyChangedを使用していますか? – ProgrammingDude