我有幾個文本框和WPF單選按鈕的集合。我想要使用觸發器設置oly單選按鈕的IsChecked屬性,如果任何文本框獲得焦點,該按鈕將具有一個名稱。我檢查了幾個例子,但是我找不到我想要的。請記住,我們使用的是MVVM模式,並且沒有代碼。觸發與目標名稱
我嘗試了以下代碼,並有這樣的編譯錯誤:
targetName屬性不能在風格二傳手
<UserControl.Resources>
<Style x:Name="myTest" TargetType="TextBox">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="RadioButton.IsChecked" Value="True" TargetName="myRadioButton"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
我讀其他職位和DataTrigger解決問題來設定。
<Style x:Name="myTest2" TargetType="RadioButton" >
<Style.Triggers>
<DataTrigger Binding="{Binding IsFocused, ElementName=myTextBox}" Value="True">
<Setter Property="IsChecked" Value="True" ></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
這將是有益的我,你能告訴我們至少XAML代碼;) –
從MSDN '你可以在二傳手採集(採集的範圍內設置該屬性的任何元素的名稱這個setter是一部分)被應用。這通常是包含此設置程序的模板中的一個命名元素。「# TargetName主要用於控件模板中,而不僅僅是在您嘗試使用它的樣式中。 –
其他人只是在WPF觸發器,樣式和模板的交集處不斷出現這種問題?無法在樣式設置器中使用TargetName。觸發器集合只能包含EventTriggers,除非它在Style中。哎呀,該控件只能在控件模板中使用,而不能在數據模板中使用... – user1454265