有没有人有一些可以在.NET(C#)中使用的离散事件模拟库的经验?
尽管排队事件和调度它们的基本功能,但是有一些非确定性行为(例如故障模拟)会很好.
我有一些提示,我甚至考虑自己编写,但首先,我想收集一些建议.
谢谢.
附加信息:我不是明确要求免费产品,但是,奖项很重要:)只是为了确定我需要映射的字段,这里是一个产品的例子:http://www.holushko.com/index. HTML
我有这个简单的XAML示例:
<Window x:Class="DynTemplateTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<DataTemplate x:Key="ItemTemplate">
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Rectangle Width="30" Height="30" Fill="Red"></Rectangle>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Left" Value="{Binding Position}"></Setter>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
</DataTemplate>
</Window.Resources>
<DockPanel LastChildFill="True">
<ContentPresenter
Content="{Binding Path=Items}"
ContentTemplate="{StaticResource ItemTemplate}"
>
</ContentPresenter>
</DockPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
它以MVVM样式呈现我的可观察集合中的项目.每个项目在属性中具有水平位置.每个项目还有一个属性IsSpecial,它告诉它是否要以某种特殊方式呈现.我希望普通项目(IsSpecial = false)呈现为红色方块(已在代码中),特殊项目为蓝色圆圈,内部带有"特殊"文本.
我不知道的是如何调整XAML代码来为项目进行模板选择.有没有办法在不编码我自己的ItemTemplateSelector的情况下做到这一点?它是否仍然适用于基于绑定的画布定位.我认为解决方案是将项目模板提取到一个单独的模板,为特殊项目再创建一个模板,然后以某种方式使用触发器...但对我来说这并不容易,因为我现在是WPF初学者.
另一件事是我非常不喜欢将Position传递给项目的方式.还有其他方法吗?
有没有其他建议如何改进代码?