How to change axis range after the plot is shown

Here is the code:

import holoviews as hv
from holoviews import opts, dim
import numpy as np
hv.extension('bokeh')

def f(xmin=1, xmax=10):
    if xmin is None:
        xmin = 0
    if xmax is None:
        xmax = 10

    x = np.linspace(xmin, xmax, 300)
    y = np.sin(x)
    return hv.Curve((x, y), kdims=hv.Dimension("x", range=(xmin, xmax)))

XRange = hv.streams.Stream.define('XRange', xmin=0, xmax=10)
x_range = XRange()
hv.DynamicMap(f, streams=[x_range])

I think it will change the xaxis range by following code, the curve data is updated but the xaxis range is not updated:

x_range.event(xmin=1, xmax=11)

I found the solution: set framewise=True

return hv.Curve((x, y), kdims=hv.Dimension("x", range=(xmin, xmax))).opts(framewise=True)