silverlight - 在AutoCompleteBox的Silverlight 4工具箱示例中,如何切换xaml中的下拉列表?

标签 silverlight xaml silverlight-4.0

直接从Silverlight 4工具包中获取的示例-示例源代码。

我们为AutoCompleteBox提供了一种样式,使其类似于组合框:

<ControlTemplate TargetType="input:AutoCompleteBox">
              <Grid Margin="{TemplateBinding Padding}">
                ...
                Click="DropDownToggle_Click">

现在,在他们的示例中,他们在代码的后面有一个click事件处理程序(下面列出),但是我试图在xaml中定义此方法(即,我不希望在文件后面有代码)
private void DropDownToggle_Click(object sender, RoutedEventArgs e)
        {
            FrameworkElement fe = sender as FrameworkElement;
            AutoCompleteBox acb = null;
            while (fe != null && acb == null)
            {
                fe = VisualTreeHelper.GetParent(fe) as FrameworkElement;
                acb = fe as AutoCompleteBox;
            }
            if (acb != null)
            {
                if (string.IsNullOrEmpty(acb.SearchText))
                {
                    acb.Text = string.Empty;
                }
                acb.IsDropDownOpen = !acb.IsDropDownOpen;
            }
        }

这可能吗 ?

最佳答案

我用以下内容替换了整行(从Click = ...开始);

IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsDropDownOpen, Mode=TwoWay}" 

我已经不再需要事件处理程序方法了。

关于silverlight - 在AutoCompleteBox的Silverlight 4工具箱示例中,如何切换xaml中的下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818548/

相关文章:

wpf - Visual Studio 2015(更新 2)中的 XAML 编辑和继续似乎不起作用

c# - 取决于 UI 焦点状态的 WPF 命令路由行为不一致

silverlight-4.0 - AutoCompleteBox 和 SearchText 清除

c# - 如何在 WebClient.DownloadStringAsync URL 中使用字符串

c# - 使用 VisualStateManager 启动和停止 Storyboard

wpf - x : meaning in xaml

Silverlight - Scrollviewer 中的 DataGrid,Column.Width ="*"使 datagrid 具有多个屏幕宽度

javascript - silverlight 控件加载完成后如何调用 javascript 函数?

silverlight - 无法在 Silverlight 项目 C# 中使用 DockPanel

wpf - 如何让工具提示立即出现在Silverlight中?