开发者

Value of text box disapears - binding viewmodel to a tab (content control)

开发者 https://www.devze.com 2022-12-30 12:51 出处:网络
Based on the MVVM example by Josh Smith, I have implemented the multi taboption which binds to a different tab to a different view model

Based on the MVVM example by Josh Smith, I have implemented the multi tab option which binds to a different tab to a different view model us开发者_StackOverflow中文版ing a simple datatemplate that binds a viewmodel to a view.

 <DataTemplate  DataType="{x:Type fixtureVM:SearchViewModel}">
    <SearchVw:SearchView/>
</DataTemplate>

The issue that I'm having, is when I switch tabs and then switch back again, the value in the textbox disappears. When I bind the Text in the textbox to a value in the ViewModel it does not disappear. This is fine, and I can overcome this but I am having another issue for example with the position of the scroll bar in a grid disappearing once the tab has lost focus.

Why is the value disappearing? I'm assuming it is a WPF sub system task that cleans up resources!? how can I avoid this? I also feel it might be slowing down my app.


Read my post here about why this is happening. Basically, because you are connecting the View and ViewModel in a DataTemplate, the tab re-creates the view every time it receives the focus. And yes, this eats up more resources. You can fix this by hooking up the view and ViewModel in a different way (i.e. Catelog method, WAF, or using a different type of items control may do the trick as well...)


Here is a solution that creates a subclass of the TabControl.

http://eric.burke.name/dotnetmania/2009/04/26/22.09.28

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号