我正在尝试在datagrid单元格的值更改时在数据网格中的单元格上执行动画.
datagrid本身绑定到普通旧CLR对象的ObservableCollection.在这种情况下,假设对象是具有"名字","姓氏"和"年龄"属性的"人物"对象.'Person'类实现了INotifyPropertyChanged接口,每个属性都在其setter中对onPropertyChanged进行了适当的调用.
这一切都很好.在datagrid定义中,我设置了我的DataTemplate来绘制每个单元格并附加了一个datatrigger ......如下所示:
<DataGridTemplateColumn Header="FirstName">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border Name="templateBorder">
<TextBlock Name="templateTextBlock" Text="{Binding Path=FirstName}" />
</Border>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=FirstName}" Value="Richard">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard AutoReverse="True">
<DoubleAnimation Storyboard.TargetName="templateTextBlock" Storyboard.TargetProperty="Opacity" To=".1" Duration="0:0:.5" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
当我的ObservableCollection中的对象更新(我更改了FirstName值)时,数据网格会更新.根据上面的例子,如果我将FirstName的值更改为'Richard',那么动画也可以正常执行.
我的问题是我需要运行我的动画,无论Firstname的新值是什么.我已经爬网了,但有些人似乎只能找到触发已知值的触发器的例子,例如当FirstName是'Richard'时触发,就像我在我的例子中所展示的那样.
我的问题是,无论更新属性的值如何,我如何触发数据触发器?因此,基本上如何在为数据网格中的给定行更新FirstName属性时触发数据触发器.
非常感谢.
我最近被问到是否对.Net中的动态装配有所了解.简短的回答是 - 我没有.
我发现了很多描述如何创建动态程序集的文章,但没有一篇文章真实地解释了以下内容:
对上述任何解释都将非常感激.
非常感谢.
对于那些使用f#的人来说,你使用它编写了哪些功能区域?什么是非常适合的语言,它与c#相比具有更强大和更轻松的功能?
有没有人有一个很好的方法来将0到59之间的数字向下舍入到最近的15.我正在使用C#3.5.
所以......
等等
非常感谢.
我想开始阅读C#/ .Net 4.0中的多线程和并行计算.
我理解多线程的基础知识,所以我正在寻找的东西不仅仅是基础知识.我也在寻找与.Net 4.0中的变化最新的东西.
你能推荐一本书吗?
非常感谢.
您可以找到在Static类上使用Singleton的众多原因.但肯定会有一些情况,在Singleton之前使用静态类会更好.这些是什么?
有谁知道是否有可能退出使用lambda的通用ForEach?例如
someList.ForEach(sl =>
{
if (sl.ToString() == "foo")
break;
// continue processing sl here
// some processing code
}
);
Run Code Online (Sandbox Code Playgroud)
这段代码本身不会编译.我知道我可以使用常规foreach但为了保持一致性我想使用lambda.
非常感谢.
我有一个java.sql.ResultSet我需要更新的对象.但是,结果集不可更新.不幸的是,这是我正在使用的特定框架的约束.
我在这里想要实现的是从数据库中获取数据,然后操纵少量数据,最后将数据写入CSV文件.
在这个阶段,我认为我最好的选择是创建一个新的结果集对象,并将原始结果集的内容复制到新的结果集中,然后像我一样操作数据.
但是,我在谷歌上追求高低,似乎无法确定如何做到这一点,或者它是否甚至可能.
我是Java的新手,所以任何帮助都会感激不尽.
我在datatemplate中为数据网格中的单元格使用TextBlock.我有一个要求,说明当单元格的值发生变化时,文本应该:
目前,我使用TargetUpdated RoutedEvent触发动画,使文本逐渐消失然后再返回.但是,在文本已经改变屏幕上的值之后发生淡入淡出.
<DataTemplate>
<Border>
<TextBlock Name="templateTextBlock" Text="{Binding Path=FirstName, NotifyOnTargetUpdated=True}" />
</Border>
<DataTemplate.Triggers>
<EventTrigger RoutedEvent="Binding.TargetUpdated">
<BeginStoryboard>
<Storyboard AutoReverse="True">
<DoubleAnimation Storyboard.TargetName="templateTextBlock" Storyboard.TargetProperty="Opacity" To=".1" Duration="0:0:.5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</DataTemplate.Triggers>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
我的问题是如何实现所需的效果 - 淡出,更改文本,淡入?
非常感谢.