【发布时间】:2015-05-19 23:18:59
【问题描述】:
我需要在我的代码中添加一些逻辑,根据从我的 MVVM 模型中的 XAML 组合框中选择的值将 BooleanToVisibilityConverter 设置为 true 或 false。更复杂的是,我实际上有 2 个组合框。组合框 2 中显示的列表取决于组合框 1 中选择的值
组合框 1 XAML
<ComboBox Margin="103,6,0,24"
x:Name="FirstOne"
Grid.Column="1"
DisplayMemberPath="SetCriteria"
ItemsSource="{Binding CriteriaList}"
SelectedItem="{Binding SelectedCriteriaLists, Mode=TwoWay}"/>
组合框 1,后面的代码
public void SearchViewModel()
{
this.CriteriaList = new ObservableCollection<SearchCriteriaList>
{
new SearchCriteriaList {SetCriteria = "Date Range"},
new SearchCriteriaList {SetCriteria = "Gateway"},
new SearchCriteriaList {SetCriteria = "Direction"}
};
this.OperatorList = new ObservableCollection<SearchOperatorLists>();
}
组合框 2 XAML
<ComboBox Margin="103,41,1,40"
x:Name="SecondOne"
Grid.Column="1"
Grid.RowSpan="2"
DisplayMemberPath="OperatorName"
ItemsSource="{Binding OperatorList}"/>
组合框 2,后面的代码
private readonly List<SearchOperatorLists> dateOperatorList = new List<SearchOperatorLists>
{
new SearchOperatorLists {OperatorName = "Today"},
new SearchOperatorLists {OperatorName = "Between"},
new SearchOperatorLists {OperatorName = "Last Month"}
};
private readonly List<SearchOperatorLists> gatewayOperatorList = new List<SearchOperatorLists>
{
new SearchOperatorLists {OperatorName = "CCSUK"},
new SearchOperatorLists {OperatorName = "MCP"},
new SearchOperatorLists {OperatorName = "CNS"},
new SearchOperatorLists {OperatorName = "Email"}
};
private readonly List<SearchOperatorLists> directionOperatorList = new List<SearchOperatorLists>
{
new SearchOperatorLists {OperatorName = "In"},
new SearchOperatorLists {OperatorName = "Out"}
};
private SearchCriteriaList selectedCriteriaList;
好的,所以只要在 FirstOne 组合框(日期范围、网关或方向)组合框 2 中选择了一个值,就使用 onPropertyChanged 事件显示相应的列表(dateOperatorList、gatewayOperatorList、directionOperatorList)
我的要求是在组合框 2 中捕获一个值,说“Between”,然后将我的 BooleanToVisibilityConverter 设置为 true。在这种情况下,它将显示 2 个日期选择器。
非常感谢任何指针。
【问题讨论】:
-
这不是 BooleanToVisibilityConverter 的用途。创建您自己的转换器,或在视图模型中创建适当的状态属性。