在ItemsSource属性的ItemsControl中绑定到动态资源
本文关键字:绑定 动态 资源 ItemsControl ItemsSource 属性 | 更新日期: 2023-09-27 18:17:39
嘿,我希望有人能回答我几个问题。我应该如何确保绑定到itemsource的数据动态更新?我不能将bindingsource从staticresource更改为dynamic resource,因为Object Binding的Source属性不是依赖对象的依赖属性。
绑定到一个静态源到底是什么意思?我认为绑定到一个动态资源意味着当资源改变时,dependencyproperty会更新。
绑定到静态资源仅仅附加资源的初始值吗?我的目标只是让signal_viewer基于signal_data进行更新。
<UserControl.Resources>
<wpfExp:SignalData x:Key="signal_data" />
</UserControl.Resources>
<DockPanel x:Name ="maindockpanel" Height ="Auto" Width ="Auto" LastChildFill="True">
<ToolBarTray DockPanel.Dock="Top">
<ToolBar HorizontalAlignment="Stretch" VerticalAlignment="Top">
<Button Name="load_button" Height="20" Width="Auto" Click="Load_Button_Click">Load</Button>
<Button Name="zoom_in_button" Click="zoom_in_button_Click">Zoom In</Button>
<Button Name="zoom_out_button" Click="zoom_out_button_Click">Zoom Out</Button>
</ToolBar>
</ToolBarTray>
<ItemsControl x:Name ="Signalviewer_Control" ItemsSource="{Binding Source = {StaticResource signal_data}, Path = list_of_signals}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<wpfExp:SignalViewer Signal="{Binding}" MainText="{Binding Path = SignalName}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
由于您提到的所有这些问题,我都反对将ViewModel或数据作为XAML中的Resource
。
DataContext
public SomeWindow() //Window Constructor
{
DataContext = new SomeViewModel();
}
或使用ViewModelLocator
或使用这里概述的RegisterDataTemplate
方法。
无论如何,如果你想快速解决这个问题,将list_of_signals
从List<T>
更改为ObservableCollection<T>