1- using System ;
2- using DevExpress . ExpressApp ;
1+ using DevExpress . ExpressApp ;
32using DevExpress . ExpressApp . Blazor ;
3+ using DevExpress . ExpressApp . Blazor . Components ;
4+ using DevExpress . ExpressApp . Blazor . Components . Models ;
45using DevExpress . ExpressApp . Editors ;
56using DevExpress . ExpressApp . Model ;
67using Microsoft . AspNetCore . Components ;
8+ using Microsoft . AspNetCore . Components . Web ;
79
8- using DevExpress . ExpressApp . Blazor . Components ;
10+ namespace CustomViewItemXPO . Blazor . Server . Editors . ButtonViewItem ;
11+
12+ public interface IModelButtonDetailViewItemBlazor : IModelViewItem ;
913
10- namespace MySolution . Module . Blazor {
11- public interface IModelButtonDetailViewItemBlazor : IModelViewItem { }
14+ [ ViewItem( typeof ( IModelButtonDetailViewItemBlazor ) ) ]
15+ public class ButtonDetailViewItemBlazor( IModelViewItem model , Type objectType ) :
16+ ViewItem( objectType , model . Id ) ,
17+ IComponentContentHolder ,
18+ IComplexViewItem
19+ {
20+ public ButtonModel ComponentModel => componentModel ;
21+
22+ private ButtonModel componentModel ;
23+ private XafApplication application ;
1224
13- [ ViewItem ( typeof ( IModelButtonDetailViewItemBlazor ) ) ]
14- public class ButtonDetailViewItemBlazor : ViewItem , IComplexViewItem {
15- public class ButtonHolder : IComponentContentHolder {
16- public ButtonHolder ( ButtonModel componentModel ) {
17- ComponentModel = componentModel ;
18- }
19- public ButtonModel ComponentModel { get ; }
20- RenderFragment IComponentContentHolder . ComponentContent => ComponentModelObserver . Create ( ComponentModel , ButtonRenderer . Create ( ComponentModel ) ) ;
21- }
22- private XafApplication application ;
23- public ButtonDetailViewItemBlazor ( IModelViewItem model , Type objectType ) : base ( objectType , model . Id ) { }
24- void IComplexViewItem . Setup ( IObjectSpace objectSpace , XafApplication application ) {
25- this . application = application ;
26- }
27- protected override object CreateControlCore ( ) => new ButtonHolder ( new ButtonModel ( ) ) ;
28- protected override void OnControlCreated ( ) {
29- if ( Control is ButtonHolder holder ) {
30- holder . ComponentModel . Text = "Click me!" ;
31- holder . ComponentModel . Click += ComponentModel_Click ;
32- }
33- base . OnControlCreated ( ) ;
34- }
35- public override void BreakLinksToControl ( bool unwireEventsOnly ) {
36- if ( Control is ButtonHolder holder ) {
37- holder . ComponentModel . Click -= ComponentModel_Click ;
38- }
39- base . BreakLinksToControl ( unwireEventsOnly ) ;
40- }
41- private void ComponentModel_Click ( object sender , EventArgs e ) {
42- application . ShowViewStrategy . ShowMessage ( "Action is executed!" ) ;
43- }
25+ RenderFragment IComponentContentHolder . ComponentContent =>
26+ ComponentModelObserver . Create ( componentModel , componentModel . GetComponentContent ( ) ) ;
27+ void IComplexViewItem . Setup ( IObjectSpace objectSpace , XafApplication application ) {
28+ this . application = application ;
29+ }
30+
31+ protected override object CreateControlCore ( ) {
32+ componentModel = new ButtonModel
33+ {
34+ Text = "Click me!" ,
35+ Click = EventCallback . Factory . Create < MouseEventArgs > ( this , ComponentModel_Click ) ,
36+ } ;
37+ return componentModel ;
38+ }
39+ private void ComponentModel_Click ( ) {
40+ application . ShowViewStrategy . ShowMessage ( "Action is executed!" ) ;
4441 }
45- }
42+ }
0 commit comments