Where I should place initialization/binding logic when using MvxTableViewCell, created from Nib?









up vote
0
down vote

favorite












I created custom MvxTableViewCell, placed all design layouts in .xib file:



public partial class FxTransactionCell: MvxTableViewCell

public static readonly NSString Key = new NSString("FxTransactionCell");
public static readonly UINib Nib = UINib.FromName(Key, NSBundle.MainBundle);

static FxTransactionCell()



protected FxTransactionCell(IntPtr handle): base(handle)

// Note: this .ctor should not contain any initialization logic.




All samples I've seen placed initialization/binding logic into (IntPtr) constructor, but note that comment placed there by VS. I think this constructor can not hold any init logic, because my custom UI elements not yet created and all my UILabels, UIButtons (which layouts in .xib file) are null inside this constructor.
So, where I should place my init/bindings logic then?










share|improve this question

























    up vote
    0
    down vote

    favorite












    I created custom MvxTableViewCell, placed all design layouts in .xib file:



    public partial class FxTransactionCell: MvxTableViewCell

    public static readonly NSString Key = new NSString("FxTransactionCell");
    public static readonly UINib Nib = UINib.FromName(Key, NSBundle.MainBundle);

    static FxTransactionCell()



    protected FxTransactionCell(IntPtr handle): base(handle)

    // Note: this .ctor should not contain any initialization logic.




    All samples I've seen placed initialization/binding logic into (IntPtr) constructor, but note that comment placed there by VS. I think this constructor can not hold any init logic, because my custom UI elements not yet created and all my UILabels, UIButtons (which layouts in .xib file) are null inside this constructor.
    So, where I should place my init/bindings logic then?










    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I created custom MvxTableViewCell, placed all design layouts in .xib file:



      public partial class FxTransactionCell: MvxTableViewCell

      public static readonly NSString Key = new NSString("FxTransactionCell");
      public static readonly UINib Nib = UINib.FromName(Key, NSBundle.MainBundle);

      static FxTransactionCell()



      protected FxTransactionCell(IntPtr handle): base(handle)

      // Note: this .ctor should not contain any initialization logic.




      All samples I've seen placed initialization/binding logic into (IntPtr) constructor, but note that comment placed there by VS. I think this constructor can not hold any init logic, because my custom UI elements not yet created and all my UILabels, UIButtons (which layouts in .xib file) are null inside this constructor.
      So, where I should place my init/bindings logic then?










      share|improve this question













      I created custom MvxTableViewCell, placed all design layouts in .xib file:



      public partial class FxTransactionCell: MvxTableViewCell

      public static readonly NSString Key = new NSString("FxTransactionCell");
      public static readonly UINib Nib = UINib.FromName(Key, NSBundle.MainBundle);

      static FxTransactionCell()



      protected FxTransactionCell(IntPtr handle): base(handle)

      // Note: this .ctor should not contain any initialization logic.




      All samples I've seen placed initialization/binding logic into (IntPtr) constructor, but note that comment placed there by VS. I think this constructor can not hold any init logic, because my custom UI elements not yet created and all my UILabels, UIButtons (which layouts in .xib file) are null inside this constructor.
      So, where I should place my init/bindings logic then?







      xamarin mvvmcross mvxbind






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 9 at 5:36









      zzheads

      4642929




      4642929






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          In your public constructor you should put your init/binding logic.
          Pay attention that you have to use DelayBind(...) to do binding inside an MvxTableViewCell



          public FxTransactionCell()

          // Init views if you need to

          // Create the bindings
          this.DelayBind(this.CreateBindings);


          public FxTransactionCell(IntPtr handle) : base(handle)

          // Some people repeat the same logic here just in case the above ctor does not get called, ignoring the note from VS but I don't think it's necessary.


          private void CreateBindings()

          var set = this.CreateBindingSet<FxTransactionCell, FxTransactionItemViewModel>();
          set.Bind(this.MyLabel).To(vm => vm.MyStringProperty);
          set.Apply();



          HIH






          share|improve this answer




















          • Doesn't work, that c'tor not called by TableView.DequeueReusableCell method
            – zzheads
            Nov 10 at 7:34










          • And if you do the logic in the intptr ctor, does it get called?
            – fmaccaroni
            Nov 10 at 14:30






          • 1




            I solve problem by calling custom method Config(FxTransactionCellViewModel) from GetOrCreateCell method of my data source, but is there other way to do it, bind all in some constructor? Or It is possible ONLY if I create all cell subviews programmatically?
            – zzheads
            Nov 10 at 14:38






          • 1




            Thanks a lot, dude!
            – zzheads
            Nov 10 at 16:12






          • 1




            You need to use the protected constructor. protected FxTransactionCell(IntPtr handle) : base(handle) and add the DelayBinding() in there. Also as suggested it should inherit from MvxTableViewCell. This is the correct answer so if it does not work then there is a problem somewhere else in your code.
            – c.lamont.dev
            Nov 21 at 7:37










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53220411%2fwhere-i-should-place-initialization-binding-logic-when-using-mvxtableviewcell-c%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          0
          down vote













          In your public constructor you should put your init/binding logic.
          Pay attention that you have to use DelayBind(...) to do binding inside an MvxTableViewCell



          public FxTransactionCell()

          // Init views if you need to

          // Create the bindings
          this.DelayBind(this.CreateBindings);


          public FxTransactionCell(IntPtr handle) : base(handle)

          // Some people repeat the same logic here just in case the above ctor does not get called, ignoring the note from VS but I don't think it's necessary.


          private void CreateBindings()

          var set = this.CreateBindingSet<FxTransactionCell, FxTransactionItemViewModel>();
          set.Bind(this.MyLabel).To(vm => vm.MyStringProperty);
          set.Apply();



          HIH






          share|improve this answer




















          • Doesn't work, that c'tor not called by TableView.DequeueReusableCell method
            – zzheads
            Nov 10 at 7:34










          • And if you do the logic in the intptr ctor, does it get called?
            – fmaccaroni
            Nov 10 at 14:30






          • 1




            I solve problem by calling custom method Config(FxTransactionCellViewModel) from GetOrCreateCell method of my data source, but is there other way to do it, bind all in some constructor? Or It is possible ONLY if I create all cell subviews programmatically?
            – zzheads
            Nov 10 at 14:38






          • 1




            Thanks a lot, dude!
            – zzheads
            Nov 10 at 16:12






          • 1




            You need to use the protected constructor. protected FxTransactionCell(IntPtr handle) : base(handle) and add the DelayBinding() in there. Also as suggested it should inherit from MvxTableViewCell. This is the correct answer so if it does not work then there is a problem somewhere else in your code.
            – c.lamont.dev
            Nov 21 at 7:37














          up vote
          0
          down vote













          In your public constructor you should put your init/binding logic.
          Pay attention that you have to use DelayBind(...) to do binding inside an MvxTableViewCell



          public FxTransactionCell()

          // Init views if you need to

          // Create the bindings
          this.DelayBind(this.CreateBindings);


          public FxTransactionCell(IntPtr handle) : base(handle)

          // Some people repeat the same logic here just in case the above ctor does not get called, ignoring the note from VS but I don't think it's necessary.


          private void CreateBindings()

          var set = this.CreateBindingSet<FxTransactionCell, FxTransactionItemViewModel>();
          set.Bind(this.MyLabel).To(vm => vm.MyStringProperty);
          set.Apply();



          HIH






          share|improve this answer




















          • Doesn't work, that c'tor not called by TableView.DequeueReusableCell method
            – zzheads
            Nov 10 at 7:34










          • And if you do the logic in the intptr ctor, does it get called?
            – fmaccaroni
            Nov 10 at 14:30






          • 1




            I solve problem by calling custom method Config(FxTransactionCellViewModel) from GetOrCreateCell method of my data source, but is there other way to do it, bind all in some constructor? Or It is possible ONLY if I create all cell subviews programmatically?
            – zzheads
            Nov 10 at 14:38






          • 1




            Thanks a lot, dude!
            – zzheads
            Nov 10 at 16:12






          • 1




            You need to use the protected constructor. protected FxTransactionCell(IntPtr handle) : base(handle) and add the DelayBinding() in there. Also as suggested it should inherit from MvxTableViewCell. This is the correct answer so if it does not work then there is a problem somewhere else in your code.
            – c.lamont.dev
            Nov 21 at 7:37












          up vote
          0
          down vote










          up vote
          0
          down vote









          In your public constructor you should put your init/binding logic.
          Pay attention that you have to use DelayBind(...) to do binding inside an MvxTableViewCell



          public FxTransactionCell()

          // Init views if you need to

          // Create the bindings
          this.DelayBind(this.CreateBindings);


          public FxTransactionCell(IntPtr handle) : base(handle)

          // Some people repeat the same logic here just in case the above ctor does not get called, ignoring the note from VS but I don't think it's necessary.


          private void CreateBindings()

          var set = this.CreateBindingSet<FxTransactionCell, FxTransactionItemViewModel>();
          set.Bind(this.MyLabel).To(vm => vm.MyStringProperty);
          set.Apply();



          HIH






          share|improve this answer












          In your public constructor you should put your init/binding logic.
          Pay attention that you have to use DelayBind(...) to do binding inside an MvxTableViewCell



          public FxTransactionCell()

          // Init views if you need to

          // Create the bindings
          this.DelayBind(this.CreateBindings);


          public FxTransactionCell(IntPtr handle) : base(handle)

          // Some people repeat the same logic here just in case the above ctor does not get called, ignoring the note from VS but I don't think it's necessary.


          private void CreateBindings()

          var set = this.CreateBindingSet<FxTransactionCell, FxTransactionItemViewModel>();
          set.Bind(this.MyLabel).To(vm => vm.MyStringProperty);
          set.Apply();



          HIH







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 9 at 13:47









          fmaccaroni

          2,3301824




          2,3301824











          • Doesn't work, that c'tor not called by TableView.DequeueReusableCell method
            – zzheads
            Nov 10 at 7:34










          • And if you do the logic in the intptr ctor, does it get called?
            – fmaccaroni
            Nov 10 at 14:30






          • 1




            I solve problem by calling custom method Config(FxTransactionCellViewModel) from GetOrCreateCell method of my data source, but is there other way to do it, bind all in some constructor? Or It is possible ONLY if I create all cell subviews programmatically?
            – zzheads
            Nov 10 at 14:38






          • 1




            Thanks a lot, dude!
            – zzheads
            Nov 10 at 16:12






          • 1




            You need to use the protected constructor. protected FxTransactionCell(IntPtr handle) : base(handle) and add the DelayBinding() in there. Also as suggested it should inherit from MvxTableViewCell. This is the correct answer so if it does not work then there is a problem somewhere else in your code.
            – c.lamont.dev
            Nov 21 at 7:37
















          • Doesn't work, that c'tor not called by TableView.DequeueReusableCell method
            – zzheads
            Nov 10 at 7:34










          • And if you do the logic in the intptr ctor, does it get called?
            – fmaccaroni
            Nov 10 at 14:30






          • 1




            I solve problem by calling custom method Config(FxTransactionCellViewModel) from GetOrCreateCell method of my data source, but is there other way to do it, bind all in some constructor? Or It is possible ONLY if I create all cell subviews programmatically?
            – zzheads
            Nov 10 at 14:38






          • 1




            Thanks a lot, dude!
            – zzheads
            Nov 10 at 16:12






          • 1




            You need to use the protected constructor. protected FxTransactionCell(IntPtr handle) : base(handle) and add the DelayBinding() in there. Also as suggested it should inherit from MvxTableViewCell. This is the correct answer so if it does not work then there is a problem somewhere else in your code.
            – c.lamont.dev
            Nov 21 at 7:37















          Doesn't work, that c'tor not called by TableView.DequeueReusableCell method
          – zzheads
          Nov 10 at 7:34




          Doesn't work, that c'tor not called by TableView.DequeueReusableCell method
          – zzheads
          Nov 10 at 7:34












          And if you do the logic in the intptr ctor, does it get called?
          – fmaccaroni
          Nov 10 at 14:30




          And if you do the logic in the intptr ctor, does it get called?
          – fmaccaroni
          Nov 10 at 14:30




          1




          1




          I solve problem by calling custom method Config(FxTransactionCellViewModel) from GetOrCreateCell method of my data source, but is there other way to do it, bind all in some constructor? Or It is possible ONLY if I create all cell subviews programmatically?
          – zzheads
          Nov 10 at 14:38




          I solve problem by calling custom method Config(FxTransactionCellViewModel) from GetOrCreateCell method of my data source, but is there other way to do it, bind all in some constructor? Or It is possible ONLY if I create all cell subviews programmatically?
          – zzheads
          Nov 10 at 14:38




          1




          1




          Thanks a lot, dude!
          – zzheads
          Nov 10 at 16:12




          Thanks a lot, dude!
          – zzheads
          Nov 10 at 16:12




          1




          1




          You need to use the protected constructor. protected FxTransactionCell(IntPtr handle) : base(handle) and add the DelayBinding() in there. Also as suggested it should inherit from MvxTableViewCell. This is the correct answer so if it does not work then there is a problem somewhere else in your code.
          – c.lamont.dev
          Nov 21 at 7:37




          You need to use the protected constructor. protected FxTransactionCell(IntPtr handle) : base(handle) and add the DelayBinding() in there. Also as suggested it should inherit from MvxTableViewCell. This is the correct answer so if it does not work then there is a problem somewhere else in your code.
          – c.lamont.dev
          Nov 21 at 7:37

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53220411%2fwhere-i-should-place-initialization-binding-logic-when-using-mvxtableviewcell-c%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

          ャフサォクコ ケウ,コ,ワ メ,ロスョノ゙,クネ,フムカヤヲニ,エコ゚ツ ウイオン゙ケワサネォキモュキォウイノンコチ゚メヌナイゥフュ,カヒウネェ ネ,ホノケ,ムュキ ッボーミュハ,チ ツス ィ メウイマヤ,゙ウチ ヅ ロ,ォジヌェ ャヌット ェ,マャ,チナエヒネソキツテ トホヲヲミーァ

          Node.js puppeteer - Use values from array in a loop to cycle through pages