我希望有一个故事板开始,每当MyCounter变化的价值.
用一个DataTrigger我只能触发一个特定的值.
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=MyCounter}" Value="Doesn't matter">
<BeginStoryboard Storyboard="{StaticResource myStoryboard}"/>
</DataTrigger>
</DataTemplate.Triggers>
Run Code Online (Sandbox Code Playgroud) 我有一个代码,用于比较上一个时间戳和实际时间戳.如果实际时间戳在最后一个时间戳之前,则系统时间已被操纵.由于从夏令时过渡到夏令时,我使用UTC.
现在我想为这种特殊情况编写单元测试.
public void TransitionFromDSTToNonDST()
{
var dayLightChangeEnd= TimeZone.CurrentTimeZone.GetDaylightChanges(DateTime.Now.Year).End;
var stillInDaylightSavingTime= dayLightChangeEnd.Subtract(TimeSpan.FromMinutes(62));
//stillInDaylightSavingTime.IsDaylightSavingTime() returns true
//stillInDaylightSavingTime is 01.58 am
var noDaylightSavingTimeAnymore= dayLightChangeEnd.Subtract(TimeSpan.FromMinutes(32));
//noDaylightSavingTimeAnymore.IsDaylightSavingTime() returns false
//noDaylightSavingTimeAnymore is 02.28 am
}
Run Code Online (Sandbox Code Playgroud)
但实际上我想模拟以下内容:
var stillInDaylightSavingTime = //for example 02.18 am BEFORE switching to Non-DST
var noDaylightSavingTimeAnymore = //for example 02.10 am AFTER switching to Non-DST
Run Code Online (Sandbox Code Playgroud)
所以问题是如何定义02.18 am是否为DST.
我有以下EventHandler:
private EventHandler<MyEventArgs> _myEventHandler;
public event EventHandler<MyEventArgs> MyEvent
{
add { _myEventHandler += value; }
remove { _myEventHandler -= value; }
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释以下片段之间的区别吗?
Snippet EventHandler(A):
//Snippet A:
if (_myEventHandler != null)
{
_myEventHandler(new MyEventArgs());
}
Run Code Online (Sandbox Code Playgroud)
Snippet BeginInvoke(B):
//Snippet B:
if (_myEventHandler != null)
{
_myEventHandler.BeginInvoke(new MyEventArgs(), ar =>
{
var del = (EventHandler<MyEventArgs>)ar.AsyncState;
del.EndInvoke(ar);
}, _myEventHandler);
}
Run Code Online (Sandbox Code Playgroud)
澄清一下:调用EventHandler"就像它"和使用一样有什么区别BeginInvoke?
我有以下ViewModel-Property:
public List<List<string>> Names .... //It's a dependency property
Run Code Online (Sandbox Code Playgroud)
在我看来,我希望ItemsControl有一个ItemsControl:
<ItemsControl ItemsSource="{Binding Names}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding ?????}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label Text="{Binding ??????}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
我如何绑定到的项目List?在上面的代码示例中,我标记了它?????
c# ×2
wpf ×2
begininvoke ×1
datatrigger ×1
itemtemplate ×1
listbox ×1
mstest ×1
storyboard ×1
unit-testing ×1