所以我的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