я сделал следующее в XAMLBinding к ItemsSource не работает
<ItemsControl x:Name="CursorLegendIC" Grid.Column="0" Grid.Row="1" ItemsSource="{Binding}" Margin="0,0" Padding="0,0,0,-300">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Ellipse Width="8" Height="8" HorizontalAlignment="Left" Margin="0,0,0,-16" Fill="{Binding SeriesColor, Converter={StaticResource ColorToBrushConverter}}" />
<TextBlock Margin="10,0,0,0" HorizontalAlignment="Left" TextWrapping="Wrap" FontSize="11" FontWeight="Bold" Foreground="{Binding SeriesColor, Converter={StaticResource ColorToBrushConverter}}" Text="{Binding SeriesName}"/>
<TextBlock FontSize="11" HorizontalAlignment="Left" TextWrapping="Wrap" Margin="10,-3,0,4" Foreground="{Binding SeriesColor, Converter={StaticResource ColorToBrushConverter}}" Text="{Binding YValue, StringFormat=\{0:0.000\}}" />
<TextBlock FontSize="11" HorizontalAlignment="Left" TextWrapping="Wrap" Margin="10,-8,0,4" Foreground="{Binding SeriesColor, Converter={StaticResource ColorToBrushConverter}}" Text="{Binding RenderableSeries.YAxisId}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
И я поставил контекст данных соответственно:
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
CursorLegendIC.DataContext = this.RolloverSeriesWithoutFirstData;
}
И установите Observable коллекции собственность как общественное
public ObservableCollection<SeriesInfo> RolloverSeriesWithoutFirstData
{
get
{
ObservableCollection<SeriesInfo> Temp = rolloverModifier.SeriesData.SeriesInfo;
return Temp;
}
}
Но привязка все еще не работает!
Кажется, что требуется только привязка в первом случае.
Когда сбор данных будет добавлен позже, изменения привязки, похоже, не вступят в силу.
Любая помощь? Благодаря
Мое предположение заключается в том, что вы обновляете сбор асинхронно, что 'INotifyCollectionChanged' не поддерживает, или вы заменяете значение экземпляра свойства' RolloverSeriesWithoutFirstData', не указав привязку, что значение было изменено (Implement 'INotifyPropertyChanged 'и поднять событие внутри метода set) – Anders
Если вы обновите async, вы можете либо это сделать, если на .NET 4.5 или выше: [Как обновить ObservableCollection через рабочий поток?] (http://stackoverflow.com/ a/14602121/1548864) или это, если ниже [AsyncObservableCollection] (https://gist.github.com/thomaslevesque/10023516) (ПРИМЕЧАНИЕ: экземпляр коллекции должен быть создан в потоке пользовательского интерфейса) – Anders
Извините .. Не видел вы получили доступ только к свойству .. Вы меняете экземпляр 'rolloverModifier.SeriesData.SeriesInfo', или он остается прежним? – Anders