Sunday, 15 September 2013

data binding - WPF ListBox Style update doens't work -



data binding - WPF ListBox Style update doens't work -

i have created wpf listbox , set itemcontainerstyle bind property , converts valid color. works when listbox loaded, no problem bindings or converter.

<listbox grid.column="0" grid.row="1" itemssource="{binding diensten}" selecteditem="{binding selecteddienst, mode=twoway}" borderbrush="lightgray" borderthickness="2" background="transparent"> <listbox.itemcontainerstyle> <style targettype="listboxitem"> <setter property="background" value="{binding path=isactive, converter={staticresource booleantolistboxbgcolorconverter}}" /> </style> </listbox.itemcontainerstyle> <listbox.itemtemplate> <datatemplate> <telerik:label content="{binding path=dienst.description}"/> </datatemplate> </listbox.itemtemplate> </listbox>

but when selecteditem changed trigger propertychangedmethod in refreshview method update listbox. unfortunatly style not applied new value of binding.

so seems style created listbox didn't updated

public property diensten() list(of toegangdienst) homecoming _diensten end set(value list(of toegangdienst)) _diensten = value firepropertychanged("diensten") end set end property public property selecteddienst() toegangdienst homecoming _selecteddienst end set(value toegangdienst) if diensten.contains(value) updatediensttodetails(value) _selecteddienst = value firepropertychanged("selecteddienst") refreshview() end if end set end property private sub refreshview() firepropertychanged("diensten") firepropertychanged("isbusy") firepropertychanged("isvisible") _ribbonviewmodel.evaluatecommands() end sub

any suggestions how style update also?

now unusual thing manage solve problem no firing property changed method line of code:

diensten = diensten.asenumerable().tolist()

i have working solution i'd prefer cleaner way accomplish this.

my list(of toegangdienst) didn't need observable because not adding or removing it, apparently caused not update entire list when firing propertychanged method.

i changed

list(of toegangdienst)

to

observablecollection(of toegangdienst)

and worked when called

_selectedtoegangdienst.firepropertychanged("isactive")

wpf data-binding listbox styles

No comments:

Post a Comment