如何在進行組合框選擇時設置文本框的屬性。例如,當組合框選擇時,設置背景和文本框的IsEnabled屬性。我想要它純粹在XAML中不在代碼後面。我使用MVVM當進行組合框選擇時設置文本框的屬性WPF XAML
回答
如何啓用textBox1中,只有當SelectedItems是1
<TextBox Height="23" HorizontalAlignment="Left" Margin="246,177,0,0" Name="textBox2" VerticalAlignment="Top" Width="120">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="IsEnabled" Value="False"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=comboBox1, Path=SelectedIndex}" Value="1">
<Setter Property="Background" Value="Green"></Setter>
<Setter Property="IsEnabled" Value="True"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
<ComboBox Height="22" HorizontalAlignment="Left" Margin="246,119,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" />
我只是想用XAML無法達到的條件值=「1」或「3」,即在數據觸發的關係比平等更復雜。
對於這種情況,你需要一個轉換器。 此鏈接可以幫助你
How to get DataTemplate.DataTrigger to check for greater than or less than?
如何在數據觸發器中有兩個或多個條件,或爲屬性指定多個值,例如
您可以使用組合的選擇對象datatrigger。看看以前的這個問題:WPF Visibility of a UI element based on combo selection
嘗試生成觸發器時,selecteditem是{x:Null}
。爲此,您需要將控件放入DataTemplate中,並將觸發器放入模板的觸發器集合中。
這裏是一個示例代碼(未測試,請你自己檢查):
<TextBox Height="23" HorizontalAlignment="Left" Margin="246,177,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" IsEnabled" Value="True" />
<ComboBox Height="22" HorizontalAlignment="Left" Margin="246,119,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" />
<DataTemplate.Triggers>
<Trigger SourceName="comboBox1" Property="ComboBox.SelectedItem" Value="{x:Null}">
<Setter TargetName="textbox2" Property="TextBox.IsEnabled" Value="False" />
</Trigger>
</DataTemplate.Triggers>
我們可以這樣做
看起來像你正在採取逆邏輯。爲什麼不檢查SelectedItem == null? – 2012-05-08 12:30:56
你怎麼可以給它代碼 – user1379584
- 1. Xaml當組合框選擇變化時更改TextBlock的文本
- 2. 當選擇組合框/文本框時選擇ListView項目WPF MVVM
- 3. 當組合框選擇時填充文本框
- 4. 當組合框選擇時從mysql中更改文本框值
- 5. c#wpf組合框選擇
- 6. 屬性WPF中的組合框
- 7. WPF XAML組合框寬度
- 8. XAML組合框錯誤WPF
- 9. 選擇組合框到文本框
- 10. WPF組合框選擇行爲
- 11. WPF取消選擇帶複選框的複選框 - 複選框組合框
- 12. C#WPF組合框與文本框作爲作爲組合框
- 13. 綁定WPF組合框的用戶設置屬性
- 14. WPF組合框不選擇觸發
- 15. 在WPF中的文本框中設置可訪問的屬性
- 16. 編程方式設置在WPF組合框選擇的項目
- 17. 選擇一個組合框項目XAML
- 18. 設置文本後更新WPF文本框屬性
- 19. 在拉組合框中設置選擇
- 20. 使用組合框進行選擇VB
- 21. WPF組合框...如何設置.Text屬性?
- 22. 帶複選框的WPF組合框
- 23. 當從組合框中選擇特定選項時自動隱藏文本框
- 24. 選擇的組合框的文本
- 25. 選擇所有組合框內的複選框Wpf中的組合框項目
- 26. 當IsEnabled發生變化時,WPF組合框文本轉換器
- 27. 選擇組合框的文本
- 28. 帶有複選框的Wpf組合框
- 29. 多選組合框設置選定屬性True
- 30. WPF XAML綁定的文本框的屬性不能清除
這個問題是相似的:http://stackoverflow.com/questions/2561820/wpf-visibility-of-基於元素的組合選擇 – 2012-05-07 11:33:04