从代码隐藏的陷阱XAML触发事件

时间:2014-01-16 13:28:28

标签: .net wpf visual-studio-2010 xaml

我有一个非常简单的DataTemplate触发器,我需要在引发时从代码中捕获它。我看到了这个例子:http://geekswithblogs.net/mrnat/archive/2007/09/20/115472.aspx,但我不知道如何使用我的DataTrigger。这是我的代码:

<GridViewColumn Header="PASS">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <Label Name="LblWarn" Content="{Binding DescWarning}" FontSize="11" Style="{StaticResource FormLabel}"/>

            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding ID_Warning}" Value="1">
                    <Setter TargetName="LblWarn" Property="Style" Value="{StaticResource FormLabel}"/>
                </DataTrigger>
            </DataTemplate.Triggers>

        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

非常感谢!

1 个答案:

答案 0 :(得分:2)

不,不,不......忘记这个可怕的想法。如果您提供了关于实际目标的最小细节,那么我本可以为您提供更好的答案。事实上,通过你添加的简单描述,我所能做的只是通过一种明智的方式来告诉你同样的结果。

首先,DataTrigger Binding ID_Warning属于某个类的1属性,并在此属性的值等于ID_Warning时作出反应。所以你基本上想知道1属性的值是public string ID_Warning { get { return iD_Warning; } set { iD_Warning == value; NotifyPropertyChanged("ID_Warning"); if (iD_Warning == 1) { DoSomethingHere(); } } } 。这是应该这样做的方式(在定义属性的类中):

delegate

如果您需要从视图模型或其中声明了此类的一个或多个实例的其他类访问它,那么您只需使用{{1}}或事件来传递信息。