停止ItemsControl缓存

时间:2016-04-15 09:25:37

标签: c# wpf caching itemscontrol

所以我的ViewModel中有一个{capture name="ip_behind_proxy" assign="ip_behind_proxy"}{strip} {assign var="ipaddress" value=""} {assign var=HTTP_CLIENT_IP value='HTTP_CLIENT_IP'|getenv} {assign var=HTTP_X_FORWARDED_FOR value='HTTP_X_FORWARDED_FOR'|getenv} {assign var=HTTP_X_FORWARDED value='HTTP_X_FORWARDED'|getenv} {assign var=HTTP_FORWARDED_FOR value='HTTP_FORWARDED_FOR'|getenv} {assign var=HTTP_FORWARDED value='HTTP_FORWARDED'|getenv} {assign var=REMOTE_ADDR value='REMOTE_ADDR'|getenv} {if ! empty($HTTP_CLIENT_IP)} {$ipaddress = $HTTP_CLIENT_IP} {elseif ! empty($HTTP_X_FORWARDED_FOR)} {$ipaddress = $HTTP_X_FORWARDED_FOR} {elseif ! empty($HTTP_X_FORWARDED)} {$ipaddress = $HTTP_X_FORWARDED} {elseif ! empty($HTTP_FORWARDED_FOR)} {$ipaddress = $HTTP_FORWARDED_FOR} {elseif ! empty($HTTP_FORWARDED)} {$ipaddress = $HTTP_FORWARDED} {elseif ! empty($REMOTE_ADDR)} {$ipaddress = $REMOTE_ADDR} {elseif ! empty($smarty.server.REMOTE_ADDR)} {$ipaddress = $smarty.server.REMOTE_ADDR} {else} {$ipaddress = "ONBEKEND"} {/if} {if $ipaddress} {$ipaddress} {/if} {/strip}{/capture} {if $smarty.capture.ip_behind_proxy ne ""}{$smarty.capture.ip_behind_proxy}{/if} ObservableCollection<User> User有一个名为User的属性,如果Username s相等,则两个用户相等(使用Username)。

所以在我的代码中,我正在执行此操作:IEquality<T>其中this.Configuration.Users[0] = user是我在编辑后获得的另一个用户。

现在发生的是,如果两个用户都是user(因为他们的用户名相同),UI就不会更新,这不是我所期望的。对新用户的任何更改都不会反映在UI中。

我认为只有在Default Equality比较器检测到更改时才会更新UI。我不想要这个。无论何时通过任何方式更改用户,我都希望更新UI。

有没有办法做到这一点?

编辑:截至目前,我有解决方法:

equal

0 个答案:

没有答案