在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>

在ItemsSource属性的ItemsControl中绑定到动态资源

由于您提到的所有这些问题,我都反对将ViewModel或数据作为XAML中的Resource

在 后面的代码中指定DataContext
public SomeWindow() //Window Constructor
{
    DataContext = new SomeViewModel();
}
或使用ViewModelLocator

或使用这里概述的RegisterDataTemplate方法。


无论如何,如果你想快速解决这个问题,将list_of_signalsList<T>更改为ObservableCollection<T>