Silverlight 4:使用Calendar或DatePicker时出现Dispatcher错误

时间:2013-02-20 09:22:26

标签: silverlight calendar datepicker

我在这个网站上看到了很多好的答案,所以我从来没有问过什么。 现在我有一个问题我无法找到答案。我正在编写Windows应用程序7.1并尝试使用日历控件,如果它的日历或DatePicker我不在乎。

但每当我更改那里的值时,我都会收到以下错误:

“这种类型的Collection不支持从与Dispatcher线程不同的线程更改其SourceCollection。”

由于我非常初学者,我不会对Threads做任何想象,我在网上找不到任何有关此错误的内容,所以我想,这在我的环境中必定是一个独特的错误。

有没有人知道,这个错误可能来自哪里?

感谢您的回复

MüllerMatthias

1 个答案:

答案 0 :(得分:0)

您应该使用SDK命名空间中的DatePicker,

http://samples.msdn.microsoft.com/silverlight/samplebrowser/#/?sref=System.Windows.Controls.Calendar

我还可以建议Telerik的silverlight控件 http://demos.telerik.com/silverlight/

<UserControl  xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class="CalendarExample.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
FontFamily="Trebuchet MS" FontSize="11"
Width="600" Height="750">

<StackPanel x:Name="LayoutRoot" Background="White">
    <StackPanel Orientation="Horizontal" Margin="5" >
    <!-- A basic Calendar. -->
    <TextBlock  Width="100" 
               Text="Calendar with date ranges defined:" TextWrapping="Wrap" Margin="5" />
    <sdk:Calendar x:Name="cal" />

    <!-- A Calendar does not highlight today's date. -->
        <TextBlock  Width="100" 
               Text="Calendar that does not highlight today's date:" TextWrapping="Wrap" Margin="5"/>
        <sdk:Calendar x:Name="cal2" Canvas.Left="270" Canvas.Top="100" 
                    IsTodayHighlighted="false" />
    </StackPanel>
    <!-- Two DatePicker controls, one using the default Short date format -->
    <!-- and the other using the Long date format. -->
    <StackPanel Orientation="Horizontal" >
    <TextBlock Width="200" Margin="5" 
               Text="DatePicker with Short date format and Calendar event handlers:" TextWrapping="Wrap" />
    <sdk:DatePicker x:Name="dp1" Height="20" Width="200" />
    </StackPanel>
    <StackPanel Orientation="Horizontal" >
    <TextBlock Width="200" Margin="5"
               Text="DatePicker with Long date format and DateSelected event handler:" TextWrapping="Wrap" />
    <sdk:DatePicker Height="20" x:Name="dp2" SelectedDateFormat="Long" Width="200"/>
    </StackPanel>
    <!-- Output TextBlock -->
    <TextBlock x:Name="text1" HorizontalAlignment="Left" Height="40" Width="350" Margin="5" />

    <!-- A Calendar to demonstrate multiple selection. -->
    <StackPanel Orientation="Horizontal" >
    <TextBlock  Width="200" Margin="5"
               Text="Calendar with multiple selections and blackout dates:" TextWrapping="Wrap" />
    <sdk:Calendar x:Name="cal3" />
    </StackPanel>
 </StackPanel>