/ / Trap XAML wyzwalające zdarzenie z kodu spoza - .net, wpf, visual-studio-2010, xaml

Trap zdarzenia wyzwalacza XAML z kodu za - .net, wpf, visual-studio-2010, xaml

Mam bardzo prosty wyzwalacz DataTemplate i muszę go przechwycić z kodu, gdy jest podniesiony. Widziałem ten przykład: http://geekswithblogs.net/mrnat/archive/2007/09/20/115472.aspx, ale nie wiem, jak to zrobić z moim DataTrigger. Oto mój kod:

<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>

Wielkie dzięki!

Odpowiedzi:

2 dla odpowiedzi № 1

Nie, nie, nie ... zapomnij o tym okropnym pomyśle. Czy podałeś choćby minimalne szczegóły dotyczące tego, co masz rzeczywisty celem było, to mógłbym udzielić ci lepszej odpowiedzi. Tak jak jest i postępując według tego małego opisu, który dodałeś, wszystko, co mogę zrobić, to omówić rozsądny sposób uzyskania tego samego wyniku.

Więc najpierw twój DataTrigger jest Binding do ID_Warning właściwość jakiejś klasy i reaguje, gdy wartość tej właściwości jest równa 1. Więc zasadniczo chcesz wiedzieć, kiedy ID_Warning właściwość ma wartość 1. Oto sposób, w jaki należy to zrobić (w klasie, która definiuje właściwość):

public string ID_Warning
{
get { return iD_Warning; }
set
{
iD_Warning == value;
NotifyPropertyChanged("ID_Warning");
if (iD_Warning == 1)
{
DoSomethingHere();
}
}
}

Jeśli potrzebujesz dostępu do tego z modelu widoku lub innej klasy, która ma zadeklarowane jedno lub więcej wystąpień tej klasy, możesz po prostu użyć delegate lub wydarzenie, aby przekazać informacje.