從不止一個組合框中選擇相同的值我有一個簡單的類這樣:如何防止用戶在WPF
public class Item
{
public int ID{get;set;}
public string Name{get;set;}
}
我有這個類在我Mainwindow.xaml.cs這樣一個名單:
public List<Item> AllItems=GetAllItems();
我有項目類的四個屬性在我Mainwindow.xaml.cs這樣:
public Item Item1{get;set;}
public Item Item2{get;set;}
public Item Item3{get;set;}
public Item Item4{get;set;}
此列表:AllIte MS是databinded四個組合框爲下:
<ComboBox x:Name="cmbCode1" ItemsSource="{Binding AllItems}" DisplayMemberPath="ID" SelectedValuePath="ID" SelectedValue="{Binding Item1.ID,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Item1,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<ComboBox x:Name="cmbCode2" ItemsSource="{Binding AllItems}" DisplayMemberPath="ID" SelectedValuePath="ID" SelectedValue="{Binding Item1.ID,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Item1,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<ComboBox x:Name="cmbCode3" ItemsSource="{Binding AllItems}" DisplayMemberPath="ID" SelectedValuePath="ID" SelectedValue="{Binding Item1.ID,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Item1,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<ComboBox x:Name="cmbCode4" ItemsSource="{Binding AllItems}" DisplayMemberPath="ID" SelectedValuePath="ID" SelectedValue="{Binding Item1.ID,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Item1,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
我具有對應於這四個組合框4個文本框爲這樣:
<TextBlock x:Name="txtName1" Text="{Binding Item1.Name,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/>
<TextBlock x:Name="txtName2" Text="{Binding Item2.Name,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/>
<TextBlock x:Name="txtName3" Text="{Binding Item3.Name,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/>
<TextBlock x:Name="txtName4" Text="{Binding Item4.Name,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/>
我要的是用戶不應該能夠選擇相同來自多個組合框的ID。 是否有一些簡單的方法可以完成,特別是僅使用xaml?我如何隱藏或顯示從其他組合框中選擇/取消選擇的項目,以便用戶無法從多個組合框中選擇相同的ID? 到目前爲止,我已經嘗試將選定的項目和整個列表發送到多值轉換器,並將項目清除/添加到列表本身,但這似乎太meesy.Any其他更好的主意,將不勝感激。
XAML是*標記*語言...它並不意味着被用來實現這種邏輯。你應該使用編程語言來做到這一點。 – mm8
@ mm8:目前爲止,我對WPF有限的理解,我目前正在使用多值轉換器,其中我發送的不是一個,而是全部四個列表,每個SelectedItem發生更改,並且正在執行所有正負列表。那裏的更新現在我不會想知道它是否可能在XAML中,我不知道.. :-) .. –