behavior 相关问题

仅当[behavior]是语言/框架构造的名称时才使用此标记。

Yii2 在保存时修剪所有内容

Yii2 框架。为通用模型创建通用行为的想法: 在验证之前修剪模型中的所有字段。 如果它是数组,则修剪数组中的所有值。 我想知道为什么在 Yii2 core 中不存在......

回答 2 投票 0

在 QML 中的组件上添加动态行为

最近我想在 QML 中的 js 函数中添加行为,但我不知道如何! 例如,我该如何做到这一点: 颜色行为{ id:行为 启用:假; 彩色动画 {...

回答 1 投票 0

QML 如何使Behavior 作用于多个属性

有没有办法让Behavior同时作用于多个属性来简化代码? 应用程序窗口 { 宽度:1280 身高:720 可见:真实 标题:qsTr(“你好...

回答 1 投票 0

如何在 qml 中将行为与顺序动画结合

如果你有 4 个属性,并且每个属性都有一个行为块(如果相应的属性发生更改,则可以让你制作动画)如果你更改 4 个属性,那么动画将默认并行...

回答 2 投票 0

Ruby“已定义?”操作员工作错误?

所以,我们有代码: 类 Foo 定义栏 提出“存在之前:#{(已定义?some_variable)}” 提出“在 not_existent 之前:#{(已定义?nonexistent_variable)}” 提出“错误” 一些_va...

回答 1 投票 0

文件重定向在 powershell 中如何工作?

我正在尝试了解 powershell 重定向的行为。 这两个 powershell 代码有不同的行为,但我不知道为什么。 该代码有效: PS C:\Users\myHome> 'file1','file2...

回答 1 投票 0

毛伊岛自定义条目行为正在阻止 ViewModel 上的 Set 调用

我为 Entry 控件创建了一个自定义行为,允许 Entry 控件集合提供一个单位数字代码输入字段,将光标移动到下一个字段(右侧)...

回答 1 投票 0

.NET MAUI 带有小数强制行为的数字条目,包含动态确定小数点位数的属性不起作用

我遵循 .NET MAUI 应用程序的 MVVM 设计模式,并具有应用于我的条目的 DecimalDigitsBehavior 行为: 我的 .NET MAUI 应用程序遵循 MVVM 设计模式,并且具有应用于我的条目的 DecimalDigitsBehavior 行为: <Label Text="UNITS" StyleClass="InputHeader" /> <Frame StyleClass="InputFrame"> <Entry Placeholder="0.0" Keyboard="Numeric" Text="{Binding My_Unit}"> <Entry.Behaviors> <behaviors:DecimalDigitsBehavior MaxDecimalDigits="{Binding MaxUnitDecimalDigits}" /> </Entry.Behaviors> </Entry> </Frame> <Label Text="DISCOUNT %" StyleClass="InputHeader" /> <Frame StyleClass="InputFrame"> <Entry Placeholder="0.00" Keyboard="Numeric" Text="{Binding My_Discount}"> <Entry.Behaviors> <behaviors:DecimalDigitsBehavior MaxDecimalDigits="2" /> </Entry.Behaviors> </Entry> </Frame> 为了清楚起见,我使用 MaxDecimalDigits 的静态属性值“2”包含了我的第二个条目,效果很好。但当我使用 Binding 来确定该值时,它不适用于我的第一个 Entry 的情况。 此绑定源来自 ObservableProperty,并在我的页面加载时设置。以下是我与 .xaml 页面关联的相应 ViewModel: [ObservableProperty] private int maxUnitDecimalDigits; ... public void ApplyQueryAttributes(IDictionary<string, object> query) { .... MaxUnitDecimalDigits = myService.UnitSetting == "0.1" ? 1 : 0; // HERE, it should cause it to trigger, but it doesn't! } 下面是我自定义的十进制数字行为供参考(只是使用正则表达式进行验证的典型行为类): using System.Text.RegularExpressions; namespace MCoreMatter.Behaviors { public class DecimalDigitsBehavior : Behavior<Entry> { // Create a BindableProperty for MaxDecimalDigits public static readonly BindableProperty MaxDecimalDigitsProperty = BindableProperty.Create(nameof(MaxDecimalDigits), typeof(int), typeof(DecimalDigitsBehavior), 2); public int MaxDecimalDigits { get => (int)GetValue(MaxDecimalDigitsProperty); set => SetValue(MaxDecimalDigitsProperty, value); } protected override void OnAttachedTo(Entry entry) { entry.TextChanged += OnEntryTextChanged; entry.Unfocused += OnEntryUnfocused; base.OnAttachedTo(entry); } protected override void OnDetachingFrom(Entry entry) { entry.TextChanged -= OnEntryTextChanged; entry.Unfocused -= OnEntryUnfocused; base.OnDetachingFrom(entry); } private void OnEntryTextChanged(object sender, TextChangedEventArgs args) { if (sender is Entry entry) { string pattern = $@"^-?\d*(\.\d{{0,{MaxDecimalDigits}}})?$"; var isValid = Regex.IsMatch(args.NewTextValue, pattern); if (!isValid) { entry.Text = args.OldTextValue; entry.CursorPosition = entry.Text.Length; } } } private void OnEntryUnfocused(object sender, EventArgs args) { if (sender is Entry entry) { string text = entry.Text.TrimEnd('.'); if (double.TryParse(text, out double value)) { entry.Text = string.Format("{0:0." + new string('0', MaxDecimalDigits) + "}", value); } else { entry.Text = string.Format("{0:0." + new string('0', MaxDecimalDigits) + "}", 0); } } } } } 我添加了调试语句来验证行为是否在页面加载时附加到条目,但是当我的 ObservableProperty MaxUnitDecimalDigits 更新时,对行为的更改没有生效(该字段仍然使用默认值 2 MaxUnitDecimalDigits 道具值)。 感谢您的帮助! 您可以有两个 Entry 输入并应用不同的 MaxUnitDecimalDigits。当您的 UnitSetting 更改时,它将更新 IsVisibile 以始终确保显示正确的 Entry。

回答 1 投票 0

从 Avalonia 中的视图模型触发用户控制操作

我在 Avalonia 11 应用程序中使用 PanAndZoom 控件。不幸的是,似乎该控件的缩放重置只能由控件方法触发。 现在我想知道如何...

回答 1 投票 0

php 中 eval 的意外行为 < 7.4

以下代码: 以下代码: <?php function e($m, $n) { return eval( 'return new class() { // '. str_repeat('a', $m). ' public function test() { return "'. $n. '"; } };' ); } for ($i = 131; $i < 140; $i++) { echo $i. ': '. e($i, 1)->test(). ', '. e($i, 2)->test(). ', '. e($i, 1)->test(). ', '. e($i, 2)->test(). ', '. e($i + 1, 1)->test(). ', '. e($i + 1, 2)->test(). "\n"; } 当使用 php 7.4 或 8.* 运行时,它会打印 131: 1, 2, 1, 2, 1, 2 132: 1, 2, 1, 2, 1, 2 133: 1, 2, 1, 2, 1, 2 134: 1, 2, 1, 2, 1, 2 135: 1, 2, 1, 2, 1, 2 136: 1, 2, 1, 2, 1, 2 137: 1, 2, 1, 2, 1, 2 138: 1, 2, 1, 2, 1, 2 139: 1, 2, 1, 2, 1, 2 这是预期的。当使用 php 7.3 - 7.0 运行时,它会打印 131: 1, 2, 2, 2, 1, 1 132: 1, 1, 1, 1, 1, 2 133: 1, 2, 1, 2, 1, 2 134: 1, 2, 1, 2, 1, 2 135: 1, 2, 1, 2, 1, 1 136: 1, 1, 1, 1, 1, 1 137: 1, 1, 1, 1, 1, 1 138: 1, 1, 1, 1, 1, 1 139: 1, 1, 1, 1, 1, 1 这是非常出乎意料的。我还没有找到解决方法,但我真的需要一个! 最初似乎是评估代码开头的字符数相同,但当代码更复杂时,情况就不再是这样了。 请帮忙! 我不确定是什么导致了你的问题,但是如果可能的话,必须避免使用eval(),这里是可能的: <?php class MyTestClass { private $n; private $m; public function __construct($m, $n) { $this->m = str_repeat('a', $m); $this->n = $n; } public function test() { return $this->n; } } function evalClass($m, $n) { return new MyTestClass($m, $n); } for ($i = 131; $i < 140; $i++) { echo $i. ': '. evalClass($i, 1)->test(). ', '. evalClass($i, 2)->test(). ', '. evalClass($i, 1)->test(). ', '. evalClass($i, 2)->test(). ', '. evalClass($i + 1, 1)->test(). ', '. evalClass($i + 1, 2)->test(). "\n"; } 输出: 131: 1, 2, 1, 2, 1, 2 132: 1, 2, 1, 2, 1, 2 133: 1, 2, 1, 2, 1, 2 134: 1, 2, 1, 2, 1, 2 135: 1, 2, 1, 2, 1, 2 136: 1, 2, 1, 2, 1, 2 137: 1, 2, 1, 2, 1, 2 138: 1, 2, 1, 2, 1, 2 139: 1, 2, 1, 2, 1, 2

回答 1 投票 0

如何通过许多列表过滤程序来加速 while 循环,每 200 个海龟在 2600 个补丁上运行

我在决策ABM工作,我的海龟必须根据适合做出最佳决策的斑块的特征和可用性来确定最佳的土地利用变化策略。然而...

回答 1 投票 0

我在 bdd / gherkin 做错了什么?

我正在学习 BDD,行为驱动开发,虽然我抓住了拥有系统行为示例的“想法”,我们可以执行这些示例并通过它来开发它,但我

回答 1 投票 0

我在 bdd/gherking 做错了什么?

我正在学习 BDD,行为驱动开发,虽然我抓住了系统行为示例的“想法”,我们可以执行这些示例并通过我们可以开发它,...

回答 0 投票 0

风格目标行为 MAUI

我想为当前页面创建样式编辑器。我用了几次所以我决定为这个元素编写样式并想知道如何在样式中使用行为。如果我像常规方式那样做,

回答 1 投票 0

如何在 PySpice 中将行为电容器引入电路?

最近从 ngSPICE 切换到 PySpice。随即出现了一个问题——如何在电路中引入行为电容或其他行为元件(电流源、电阻、电感)...

回答 0 投票 0

SQLITE - 插入...在哪里 - 如何强制动态行为

我尝试使用 WHERE 条件插入。现在, WHERE 将取决于每个新插入的记录,例如不存在的地方(从中选择...)。 然而,在哪里 我在 WHERE 条件下尝试了 INSERT。现在, WHERE 将取决于每个新插入的记录,例如WHERE NOT EXISTS (select ... from <table I am inserting records into>). 但是,WHERE 子句被评估一次,并且不考虑每个新插入的记录。 我知道 INSERT OR IGNORE,或 INSERT OR UPDATE 或 UPSERT ... 然而,在我的例子中,WHERE 子句会比仅仅验证密钥的存在更复杂。 问题是查询优化器永远只评估一次WHERE,而不是一条一条地考虑新插入的记录。很公平。 问题:有没有办法强制查询优化器在插入后立即考虑每条记录? 作为一个(有点理论性的)例子:从递归生成的数列中引入质数,WHERE 条件声明它不能被表中已经存在的任何(质数)数相除。密码 WON'T work;它将一共介绍19个数字。 CREATE TABLE pnumbers (pnumber number primary key); with r as (select 2 as n union all select n+1 as n from r where n < 20) insert into pnumbers select n from r where not exists (select pnumber from pnumbers pn where r.n % pn.pnumber = 0 ); 附言 相反, DELETE .. WHERE 工作完美 并且速度非常快。下面的代码在我的游戏笔记本电脑上仅用 90 秒就消除了 1000 万个连续数字中的非素数——(然而,这不是我的想法): delete from pnumbers where exists (select pnumber from pnumbers pn2 where pn2.pnumber <= sqrt(pnumbers.pnumber) and pnumbers.pnumber % pn2.pnumber = 0); 问题是查询优化器评估了一次 WHERE 永远 不,这不是真的。 WHERE 子句对 r 的每一行求值一次,因为 EXISTS 的子查询是一个 correlated 子查询。 问题有点不一样 在任何INSERT INTO ... SELECT...语句中,首先执行SELECT...语句,完成后返回的结果集被插入到表中。 这意味着对于您的理论示例,在该语句返回之前不会插入表pnumbers: with r as (select 2 as n union all select n+1 as n from r where n < 20) select n from r where not exists (select pnumber from pnumbers pn where r.n % pn.pnumber = 0 ); 在上面的语句中对表pnumbers的任何引用都将访问一个空表,因为尚未插入任何行。 这就是为什么这条语句返回r的所有行。 确实在 SQLite 的INSERT 的文档中没有清楚地概述这种行为,但这是意思: 为每行数据插入一个新条目到表中 通过执行 SELECT 语句返回。

回答 1 投票 0

heredocument 中带有空参数的 Shell 行为差异

Ash、Dash 或 Bash,Zsh 以不同方式处理此处文档中的无效空参数 ${var:?} 扩展错误。 这是使用真正 POSIX 语法的 experiment.sh 代码: #!/usr/bin/env sh 空...

回答 1 投票 0

div 的特定滚动行为

有没有人注意到推特网站的滚动行为, 在这个网站上,最右边的 div 停止滚动,当它结束但中间的继续滚动时,我希望我的

回答 1 投票 0

Python中过滤器对象的这种行为有什么原因吗?

>>> a = filter(lambda x: x&1, [1,2]) >>> list(a) [2] >>> list(a) [] 这很反直觉,不是吗?所以,如果谁有解释为什么会这样,......。

回答 1 投票 0

估价单指令?

我需要在Java中得到帮助 Q.1 java指令x = x++ + 1是表现出未定义的行为还是只是未指定 ? Q.2 在指令y += A()+B()+y++中,是否保证RHS(右手 ...

回答 1 投票 -1

© www.soinside.com 2019 - 2024. All rights reserved.