我有一個帶有 TextBlock 和 ComboxBox 的堆疊面板,并且我有一個 TextBox 作為搜索欄位。
<StackPanel Grid.Row="1" Grid.Column="2">
<TextBlock Text="Group Filter" Margin="7,0,0,0"/>
<ComboBox Text ="{Binding GroupFilter}" Height="30" Width="130" Margin="0,4,0,0"
Padding="5" IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Source={StaticResource GroupFilterEnum}}"
</ComboBox>
</StackPanel>
<TextBox Text="{Binding SingleFilter, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.Column="3" Height="30" Width="140" Margin="0,20,0,0" Padding="5" materialDesign:HintAssist.Hint="Search single Id...">
</TextBox>
所以基本上我有一個資料集,你可以做的是你可以根據來自 theGroupFilterEnum 的預定義設定過濾資料,或者你可以自己在 TextBox 中輸入一個過濾器值。
我嘗試做的是:
當 TextBox 為空時,應該保持原樣。當 TextBox 有值時,我想將以下內容添加到 ComboBox 以指示當 TextBox 中有值時 ComboBox 處于非活動狀態:
IsEditable="False"
IsHitTestVisible="False"
Focusable="False"
Foreground="{StaticResource MaterialDesignBodyLight}"
我試圖為 TextBox 制作一個 TextChanged EventHandler,例如:
private void textChangedEventHandler(object sender, TextChangedEventArgs args)
{
var text = sender.ToString().Replace("System.Windows.Controls.TextBox: ", "");
if (!string.IsNullOrWhiteSpace(text))
{
}
}
但我真的不知道如何從這個 EventHandler 中參考 ComboBox。我對此很陌生,所以我還沒有真正做過很多事件處理程式。這是這樣做的方法嗎?如果是,有人可以幫我處理事件處理程式嗎?或者也許有更好的方法?直接在xaml檔案中可能嗎?
非常感謝所有幫助,如果需要其他資訊,請告訴我。
提前致謝。
uj5u.com熱心網友回復:
您可以將ComboBox要更改的屬性系結到使用您需要實作的轉換器的屬性(Text這里是示例)。TextBox
<TextBox x:Name="MyTextBox"/>
<ComboBox Focusable="{Binding ElementName=MyTextBox, Path=Text, Converter={StaticResource EmptyStringToBooleanConverter}}">
uj5u.com熱心網友回復:
如果您想要一個可以像 textBox 或 comboBox 一樣使用的控制元件,那么您就不是好方法。
組合框控制元件有一個屬性IsEditable,它允許寫入或選擇一個值。
嘗試這個 :<ComboBox IsEditable="True"/>
否則,您可以為您的控制元件命名,然后您可以通過輸入他的名字在您的代碼中獲取它。
這里的結果:結果 (我很抱歉我的英語,我是法國人)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/448335.html
上一篇:如何從網格中添加和洗掉特定列?
