标签: eventtrigger

如何通过DataBinding/Triggers有选择地设置TabItem的"可见性"

如果属性(BlahType)设置为1并且显示为设置为0,我有一个应该隐藏的标签页.这就是我想要做的事情:

<TabItem Header="Blah">
    <TabItem.Triggers>
        <DataTrigger Binding="{Binding BlahType}" Value="0">
            <Setter Property="TabItem.Visibility" Value="Hidden" />
        </DataTrigger>
    </TabItem.Triggers>
</TabItem>
Run Code Online (Sandbox Code Playgroud)

问题是,我收到此错误:

"Triggers collection members must be of type EventTrigger"
Run Code Online (Sandbox Code Playgroud)

如果你谷歌那个错误,你会看到WPF博士解释错误.有没有一种干净的方式来做我想在这里实现的目标?

data-binding wpf eventtrigger

6
推荐指数
1
解决办法
6271
查看次数

如何在WPF中绑定单选按钮的Checked事件?

我在WPF中使用以下标记:

    <StackPanel.Triggers>
        <EventTrigger RoutedEvent="RadioButton.Checked" SourceName="xmlRadioButton">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource ShowXmlPanel}"/>
            </EventTrigger.Actions>
        </EventTrigger>
        <EventTrigger RoutedEvent="RadioButton.Checked" SourceName="adiRadioButton">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource ShowAdiPanel}"/>
            </EventTrigger.Actions>
        </EventTrigger>
    </StackPanel.Triggers>
Run Code Online (Sandbox Code Playgroud)

虽然这在我运行代码时工作正常,但我在VS 2008的设计器窗口中收到以下错误:

值'RadioButton.Checked'无法分配给属性'RoutedEvent'.无效的活动名称.

知道为什么,以及如何解决这个问题?

data-binding wpf eventtrigger

6
推荐指数
1
解决办法
3003
查看次数

C#后台工作者除了我自己以外没有触发任何电脑上的dowork事件

在我的一个应用程序中,我遇到了一个非常奇怪的背景工作者问题.我最近稍微修改了一些GUI修复程序,但现在当另一台PC上的某人运行.exe或安装我的OneClick部署时,后台工作程序不会进入dowork事件.两个版本之间的逻辑没有改变.我做了一个比较,除了添加更多的错误记录,没有任何改变.

我已经在dowork事件中包含了消息框和断点,但除了在我自己的PC上之外,它从未进入任何地方.即使我远程调试它也不会进入DoWork事件

有什么建议?

按钮单击甚至调用runworkerasync事件

private void ScanButton_Click_1(object sender, RoutedEventArgs e)
    {

        Scan = new BackgroundWorker();
        Scan.WorkerReportsProgress = true;
        Scan.DoWork += new DoWorkEventHandler(Scan_DoWork);
        Scan.ProgressChanged += new ProgressChangedEventHandler(Scan_ProgressChanged);
        Scan.RunWorkerCompleted += new RunWorkerCompletedEventHandler(Scan_RunWorkerCompleted);
        Scan.RunWorkerAsync();
    }
Run Code Online (Sandbox Code Playgroud)

下面是运行DoWork事件的代码.我已经删除了它为简单起见所做的其他功能.它所做的就是运行一个函数,该函数返回一个字符串并将其放在名为scanresults的列表中.

private BackgroundWorker Scan;

    public void Scan_DoWork(object sender, DoWorkEventArgs e)
    {

        System.Windows.Forms.MessageBox.Show("Inside the DoWork");

        BackgroundWorker bw = sender as BackgroundWorker;

        float percentageDone = 0.0F;

        ScanResults = new List<string>();

        try
        {

            System.Windows.Forms.MessageBox.Show("Doing first scan check");

            ScanResults.Add(Functions.LocalComputerName());
            percentageDone = ((1 / 1f) * 100f);
            bw.ReportProgress((int)percentageDone);

        }
        catch (Exception ex)
        { …
Run Code Online (Sandbox Code Playgroud)

c# events eventtrigger backgroundworker

6
推荐指数
1
解决办法
8637
查看次数

交互之前的触发触发在Windows Phone 8中更改ListPicker

当ViewModel中出现触发器时,我遇到了一个问题,SelectedItem(参数)来自之前选择的Item.我需要新选择的项目作为selectionChanged的参数.

我是WP8的新手.下面是代码

    <toolkit:ListPicker Header="Background"
                                    ExpansionMode="FullscreenOnly"
                                    Template="{StaticResource ListPickerControlTemplate}"
                                    VerticalAlignment="Top"
                                    ItemsSource="{Binding Path=Buildings.ObjectList}"
                                    Margin="0"
                                    x:Name="buldings"
                                    Padding="0">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="SelectionChanged">
                            <i:InvokeCommandAction  Command="{Binding Path=BuildingSelectionCommand}"
                                                    CommandParameter="{Binding Path=SelectedItem, ElementName=buldings}" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)

谢谢Vinod

xaml eventtrigger mvvm windows-phone windows-phone-8

6
推荐指数
1
解决办法
1715
查看次数

WPF EventTriggers - 无法将属性"RoutedEvent"中的字符串"MouseEnter"转换为"System.Windows.RoutedEvent"类型的对象

我无法让任何事件触发器工作.我正在做的一个简化示例如下 -

<Window x:Name="win" x:Class="EventTriggers.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
    <ControlTemplate x:Key="buttonT">
        <Border Background="#333">
            <TextBlock Text="{Binding}" HorizontalAlignment="Stretch" Foreground="White"/>
            <Border.Triggers>
                <EventTrigger RoutedEvent="MouseEnter">

                </EventTrigger>
            </Border.Triggers>
        </Border>
    </ControlTemplate>

    <DataTemplate x:Key="lbt">
        <Button Template="{StaticResource buttonT}" Click="Button_Click"></Button>
    </DataTemplate>

</Window.Resources>
<ListBox ItemsSource="{Binding ElementName=win,Path=col}" ItemTemplate="{StaticResource lbt}">
</ListBox>
Run Code Online (Sandbox Code Playgroud)

我知道有一个MouseEnter关于边界的事件,因为它被定义,UIElement但我仍然得到

无法将属性"RoutedEvent"中的字符串"MouseEnter"转换为"System.Windows.RoutedEvent"类型的对象

一旦我运行该应用程序.

任何帮助将非常感激.

wpf eventtrigger

5
推荐指数
2
解决办法
1万
查看次数

为什么jQuery的triggerHandler()不会阻止内联事件?

我已经为这个问题制作了这个测试代码:http://jsfiddle.net/5phqm/1/

据我了解,如果jQuery triggerHandler()阻止默认的浏览器行为,那么本机JavaScript事件将不会被触发和处理(addEventListener()在我的代码中也是如此),但是通过标签属性添加的内联事件onclick=""无论如何都会被触发!为什么会这样?我是否误解了浏览器中触发的事件?

javascript jquery eventtrigger

5
推荐指数
1
解决办法
510
查看次数

正好10分钟后,S3 Lambda触发双重调用

我们正在经历由S3 ObjectCreated-Events触发的Lambda的双Lambda调用.这些双调用发生恰好在第一次调用后10分钟,不是10分钟后的第一次尝试是完整的,但10分钟后,第一次调用发生.原始调用需要0.1到5秒之间的任何内容.没有调用会导致错误,它们都会成功完成.

我们知道SQS例如不保证完全一次但至少一次传递消息,我们会接受一些lambdas由于下面的分布式系统的结果而第二次被调用.然而,延迟10分钟听起来很奇怪.

大约10k条消息100-200导致双重调用.

AWS Support基本上说"10分钟的等待时间是设计的,但我们无法告诉您原因",这一点都没有用.


  • 有没有其他人以前经历过这种行为?
  • 你是如何解决这个问题的,或者你只是忽略它(我们能做什么)?
  • 一个建议的解决方案是不使用直接的S3-lambda触发器,但让S3将其事件放在SNS上并订阅一个Lambda.有这种方法的经验吗?

示例日志:两次调用,相隔10分钟,相同的RequestId

START RequestId:f9b76436-1489-11e7-8586-33e40817cb02版本:13
2017-03-29 14:14:09 INFO ImageProcessingLambda:104 - 处理1条记录

START RequestId:f9b76436-1489-11e7-8586-33e40817cb02版本:13
2017-03-29 14:24:09 INFO ImageProcessingLambda:104 - 处理1条记录

eventtrigger amazon-s3 amazon-web-services aws-lambda

5
推荐指数
1
解决办法
2177
查看次数

如何在AWS Lambda中使用python访问事件对象?

跟进此问题: 筛选 CloudWatch Logs 以提取实例 ID

我认为这使得问题不完整,因为它没有说明如何使用 python 访问事件对象。

我的目标是:

  • 读取运行状态变化触发的实例
  • 获取与实例关联的标签值
  • 启动具有相同标签的所有其他实例

Cloudwatch触发事件是:

{
  "source": [
    "aws.ec2"
  ],
  "detail-type": [
    "EC2 Instance State-change Notification"
  ],
  "detail": {
    "state": [
      "running"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以看到这样的例子:

def lambda_handler(event, context):

    # here I want to get the instance tag value
    # and set the tag filter based on the instance that 
    # triggered the event

    filters = [{
            'Name': 'tag:StartGroup',
            'Values': ['startgroup1'] 
        },
        {
            'Name': 'instance-state-name', 
            'Values': ['running']
        }
    ]

    instances = …
Run Code Online (Sandbox Code Playgroud)

python eventtrigger amazon-web-services aws-lambda

5
推荐指数
1
解决办法
2万
查看次数

&lt;option&gt;上的事件触发器在Webkit上不起作用

我想在下拉<select>列表上添加事件触发器。示例(jsFiddle):

$( document ).ready(function() {
    $('.lorem').click(function() {
        alert('ipsum');
    });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
  <option class="lorem">1</option>
  <option class="lorem">2</option>
</select>
Run Code Online (Sandbox Code Playgroud)

使用Firefox,当我单击它时,它会正常触发。但是在webkit(Chrome / Safari等)上,它不起作用。为什么?

javascript jquery webkit eventtrigger

5
推荐指数
1
解决办法
49
查看次数

当向 XAML 中的 TextBlock 添加新行时,将 ScrollViewer 滚动到 WPF 中的底部

我试图将垂直滚动条保留在底部(最新条目),但目前,滚动条只是停留在同一个位置,因此当内容被添加到字符串中时,滚动条会移动到顶部。

我知道我可以使用ServerScroll.ScrollToEnd()代码隐藏中的属性将栏移动到末尾。但是有没有办法用xaml自动做到这一点?(这样我就不必每次添加到字符串时都调用此属性)。

XAML

<ScrollViewer Name="ServerScroll"
              VerticalScrollBarVisibility="Auto">
    <TextBlock Name="serverConsole"
               Margin="5"
               Background="White"
               TextWrapping="Wrap"/>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

代码隐藏

private void example_Click(object sender, RoutedEventArgs e)
{
    ServerConsole += "asdf\r\n";      // binded to TextBlock
    ServerScroll.ScrollToEnd();    
}
Run Code Online (Sandbox Code Playgroud)

c# wpf eventtrigger scrollviewer

5
推荐指数
1
解决办法
3205
查看次数