2013-06-07 2 views
0

Эй, я надеялся, что кто-то может ответить на пару вопросов для меня. Как я могу гарантировать динамическое обновление связанных данных с элементами источника? Я не могу изменить bindingsource из staticresource в динамический ресурс, потому что свойство Source объекта привязки не является свойством зависимостей объекта зависимостей.привязка к динамическому ресурсу в ItemsControl на свойстве ItemsSource

Что означает привязка к staticresource точно? Я бы подумал, что привязка к динамическому источнику будет означать, что зависимость 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> 

ответ

1

Я все против сдачи ViewModel или данных в качестве Resource в XAML из-за все эти вопросы, которые вы упомянули.

Вместо либо назначить DataContext в коде позади:

public SomeWindow() //Window Constructor 
{ 
    DataContext = new SomeViewModel(); 
} 

или использовать ViewModelLocator

или использовать RegisterDataTemplate подход, изложенный here.


В любом случае, если вы хотите, чтобы решить эту проблему быстро, изменить list_of_signals от List<T> к ObservableCollection<T>

+0

Ах я читал об этом, но я не был уверен, нужен ли я, потому что я только хочу свойства для обновления при получении нового списка , а не при изменении любого сигнала внутри списка. В любом случае спасибо за совет. Я расскажу о двух упомянутых вами методах –