﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » WinForms (How do I?)  » CheckedListBox - How to use it?</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Mon, 01 Jun 2026 08:43:44 GMT</lastBuildDate><ttl>20</ttl><item><title>CheckedListBox - How to use it?</title><link>http://forum.strataframe.net/FindPost32128.aspx</link><description>Ivan... Boa Tarde...&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Como utilizar o CheckedListBox com multipla escolha?&lt;div&gt;Você tem aí um exemplo?&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Abraços...</description><pubDate>Tue, 09 Jul 2013 17:57:35 GMT</pubDate><dc:creator>Rogerio Mauri</dc:creator></item><item><title>RE: CheckedListBox - How to use it?</title><link>http://forum.strataframe.net/FindPost32140.aspx</link><description>Boa sacada. Porém, para te falar a verdade, eu nunca usei este controle "bound" a nenhum BO. Em casos deste tipo sempre uso um Infragistics Grid com um BusinessBindingSource como datasource.&lt;br/&gt;&lt;br/&gt;Aparentemente, a mensagem de erro te informa que não encontrou o &lt;span id="ctl00_ctlContentPlaceHolder_ctl00_ctlTopic_ctlPanelBar_ctlTopicsRepeater_ctl05_lblFullMessage"&gt;FieldPropertyDescriptor, que geralmente precisa ser definido quando você cria uma definição CUSTOM para a propriedade do BO. Em seu BO, seria algo do gênero: &lt;br/&gt;&lt;br/&gt;&lt;span&gt;[codesnippet]#Region " Custom Field Properties "&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Protected Overrides Function GetCustomBindablePropertyDescriptors() As MicroFour.StrataFrame.Business.FieldPropertyDescriptor()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return New MicroFour.StrataFrame.Business.FieldPropertyDescriptor() { _&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; New MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor("SeuCampo", GetType(SuaTabelaBO))}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;br/&gt;&lt;br/&gt;#End Region[/codesnippet]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Um aviso, estarei fora por duas semanas, então se precisar de dar continuidade às suas dúvidas, te aconselho a escrever em Inglês para outros poderem te dar uma força.&lt;br/&gt;&lt;br/&gt;Abraços.&lt;br/&gt;&lt;br/&gt; &lt;/span&gt;</description><pubDate>Tue, 09 Jul 2013 17:57:35 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: CheckedListBox - How to use it?</title><link>http://forum.strataframe.net/FindPost32138.aspx</link><description>Ivan... Bom Dia...&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Revendo a documentação do StrataFrame, observe o que encontrei no tópico "CheckedListBox Control Data Binding".&lt;br/&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;This is a standard Windows checked list box that allows the end-user to apply an on/off condition on each line item in the list. &amp;nbsp;By default, this control is bound to the SelectedValue property, which is not tied to the individually checked items. &amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;To bind to the individually checked items, the data field property bound to the control must be serialized, and the underlying database field type must be VarBinary. &amp;nbsp;Additionally, the BindingProperty must be changed to CheckedItems.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Fiz isso (criei um campo varbinary na tabela do banco de dados, marquei 'Serialize data?' no BOMapper, populei os dados com um Enumeration e alterei a propriedade BindingProperty do controle para CheckedItems), porém ao executar a aplicação e chamar o form, recebo o seguinte erro:&lt;br/&gt;&lt;br/&gt;&lt;div&gt;&lt;div&gt;BusinessLayerException&lt;div&gt;&amp;nbsp; An error occurred while refreshing the data from field 'TbEntidadeSaudeSiabFamiliaMembroBO.DoencaCondicaoReferidaList' to property 'CheckedItems' on control 'cbDoencaCondicaoReferidaList.' &amp;nbsp;Are you missing FieldPropertyDescriptor for a custom property?&lt;div&gt;ArgumentException&lt;div&gt;&amp;nbsp; Não é possível ligar à propriedade 'CheckedItems' porque ela é somente leitura.&lt;div&gt;Nome do parâmetro: PropertyName&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Source &amp;nbsp; &amp;nbsp; : MicroFour StrataFrame Business&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Stack Trace:&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.Binding.CheckBinding()&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.Binding.SetBindableComponent(IBindableComponent value)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ControlBindingsCollection.AddCore(Binding dataBinding)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.BindingsCollection.Add(Binding binding)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ControlBindingsCollection.Add(Binding binding)&lt;div&gt;&amp;nbsp; &amp;nbsp;em MicroFour.StrataFrame.Business.BusinessLayer.AddBinding(Control ControlToRefresh, String PropertyName, String FieldName)&lt;div&gt;&amp;nbsp; &amp;nbsp;em MicroFour.StrataFrame.Business.BusinessLayer.RefreshControl(IBusinessBindable ControlToRefresh, Boolean DataPresent)&lt;br/&gt;&lt;br/&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;em MicroFour.StrataFrame.Business.BusinessLayer.RefreshBoundControls()&lt;div&gt;&amp;nbsp; &amp;nbsp;em MicroFour.StrataFrame.Business.BusinessLayer.Refresh()&lt;div&gt;&amp;nbsp; &amp;nbsp;em MicroFour.StrataFrame.UI.Windows.Forms.ChildFormDialog.CreateForm(Object[] Arguments)&lt;div&gt;&amp;nbsp; &amp;nbsp;em MicroFour.StrataFrame.UI.Windows.Forms.ChildFormDialog.ShowDialog(Object[] Arguments)&lt;div&gt;&amp;nbsp; &amp;nbsp;em MicroFour.StrataFrame.UI.Windows.Forms.ChildFormDialog.ShowDialog()&lt;div&gt;&amp;nbsp; &amp;nbsp;em BDLicitecMasterSaudeBO.FormBasic.FormTbEntidadeSaudeSiabFamilia.cmdEdit_Click(Object sender, EventArgs e) na C:\Users\Rogerio\Documents\Visual Studio 2010\Projects\StrataFrameProjects\GMPlus\BDLicitecMasterSaudeBO\FormBasic\FormTbEntidadeSaudeSiabFamilia.cs:linha 149&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.Control.WmMouseUp(Message&amp;amp; m, MouseButtons button, Int32 clicks)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.Control.WndProc(Message&amp;amp; m)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ScrollableControl.WndProc(Message&amp;amp; m)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.ToolStrip.WndProc(Message&amp;amp; m)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.Control.ControlNative&amp;#119;indow.OnMessage(Message&amp;amp; m)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.Control.ControlNative&amp;#119;indow.WndProc(Message&amp;amp; m)&lt;div&gt;&amp;nbsp; &amp;nbsp;em System.Windows.Forms.Native&amp;#119;indow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)&lt;br/&gt;</description><pubDate>Tue, 09 Jul 2013 09:48:54 GMT</pubDate><dc:creator>Rogerio Mauri</dc:creator></item><item><title>RE: CheckedListBox - How to use it?</title><link>http://forum.strataframe.net/FindPost32137.aspx</link><description>OK, entendi.&lt;br/&gt;&lt;br/&gt;Tudo depende muito da estrutura de seu banco de dados e da lógica de relacionamento atribuída a este caso.&lt;br/&gt;Você terá que enumerar o conteúdo de seu ListBox e verificar que itens estão no estado de "Checked". Neste ponto, você deve tomar a atitude necessária em suas tabelas. Se checked, deveria existir um registro em uma "child table"? Ou, um campo de flag na sua tabela deveria estar como True? Estas condições deverão ser revistas pelo seu programa.&lt;br/&gt;Então, após o controle ser populado, você deve entrar num loop Item a Item verificando se deveriam estar "checked", e depois, ao Salvar, entrar no loop novamente e verificar que atitudes deve tomar quanto aos itens que estiverem "checked" ou não.&lt;br/&gt;Não há um binding por Item do controle.&lt;br/&gt;&lt;br/&gt;Acho que para a funcionalidade que está procurando, poderia ser mais indicado um Grid utilizando o BusinessBindingSource.</description><pubDate>Tue, 09 Jul 2013 09:43:58 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: CheckedListBox - How to use it?</title><link>http://forum.strataframe.net/FindPost32134.aspx</link><description>Olá Ivan.. Grato pelo retorno...&lt;br/&gt;&lt;br/&gt;Popular não tive problemas.&lt;br/&gt;&lt;br/&gt;A questão, na verdade, é&amp;nbsp;a binding dos itens&amp;nbsp;marcados&amp;nbsp;para um campo no BO vinculado (um varbinary, por exemplo). Não encontrei na documentação do StrataFrame como fazer isso. &lt;br/&gt;&lt;br/&gt;Na prática. Um checkedlistbox exibe algumas opções (vindas de&amp;nbsp;um enum). O usuário marca algumas delas e os IDs selecionados são persistidos em um campo do BO vinculado. &lt;br/&gt;&lt;br/&gt;O que é exibido para o usuário selecionar no controle:&lt;br/&gt;&lt;br/&gt;[X] Item A&lt;br/&gt;[&amp;nbsp; ] Item B&lt;br/&gt;[X] Item C&lt;br/&gt;&lt;br/&gt;Utilizado para popular o controle CheckedListBox:&lt;br/&gt;&lt;br/&gt;public enum Itens : byte&lt;br/&gt;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ItemA = 1,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ItemB = 2,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ItemC = 3&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;Os itens A e C devem então ser persistidos em um campo de tabela.</description><pubDate>Mon, 08 Jul 2013 18:28:06 GMT</pubDate><dc:creator>Rogerio Mauri</dc:creator></item><item><title>RE: CheckedListBox - How to use it?</title><link>http://forum.strataframe.net/FindPost32133.aspx</link><description>Olá Rogério.&lt;br/&gt;&lt;br/&gt;Ficou meio vaga para mim a sua dúvida.&lt;br/&gt;Quer dizer como popular o CheckedListBox?&lt;br/&gt;Bom, para começar acho que poderia dar uma olhadinha no tópico "List Control Population" do help. Vai encontrar em "Application Framework" -&amp;gt; "UI Layer" -&amp;gt; "Controls" -&amp;gt; "List Population".&lt;br/&gt;&lt;br/&gt;Abraços.</description><pubDate>Mon, 08 Jul 2013 11:13:59 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item></channel></rss>