如您所知,在没有行为的情况下,您无法将事件直接绑定到命令:
<DataGrid>
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewMouseDoubleClick">
<i:InvokeCommandAction Command="{Binding TradeEntryCommand"} />
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
这完全正常,但是现在我必须通过双击DataGrid本身双击Cell来重构它.(我不在乎点击了哪个单元格)
我希望现在在Cell Style中定义这个behviour,如下所示:
<Style x:Key="DefaultCellStyleBase" TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="PreviewMouseDoubleClick">
?????????
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<!-- ... -->
</Style>
Run Code Online (Sandbox Code Playgroud)
但是我如何从上面引入行为来触发命令呢?
非常感谢,
在我的ModelForm中,我创建了一个未直接绑定到模型上的任何内容的下拉列表.因此,我在实例化时传递了它的查询集.
class CallsForm(ModelForm):
def __init__(self, company, *args, **kwargs):
super(CallsForm, self).__init__(*args, **kwargs)
self.fields['test_1'].queryset = company.deal_set.all()
test_1 = forms.ModelChoiceField(queryset = '')
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,我如何为它指定一些属性?
对于其他模型绑定小部件,我通常在Meta中执行此操作:
class Meta:
model = Conversation
widgets = {
'notes': forms.Textarea(attrs={'class': 'red'}),
}
Run Code Online (Sandbox Code Playgroud)
但在我的情况下重写它是没有意义的.
我尝试在实例化时设置属性而没有任何运气.
test_1 = forms.ModelChoiceField(attrs={'class':'hidden'}, queryset = '')
Run Code Online (Sandbox Code Playgroud)
但它说: __init__() got an unexpected keyword argument 'attrs'
肯定有办法......
我已经像这样设置了Flask:
api = Api(app, decorators=[csrf_protect.exempt])
api.add_resource(FTRecordsAPI,
'/api/v1.0/ftrecords/<string:ios_sync_timestamp>',
endpoint="api.ftrecord")
Run Code Online (Sandbox Code Playgroud)
我想在内部重定向到端点api.ftrecord.
但是我尝试这样做的那一刻:
base_url = flask.url_for('api.ftrecord')
Run Code Online (Sandbox Code Playgroud)
我得到一个例外.
File "/Users/hooman/workspace/F11A/src/lib/werkzeug/routing.py", line 1620, in build
raise BuildError(endpoint, values, method)
BuildError: ('api.ftrecord', {}, None)
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我相信大多数人现在都会惊讶为什么我们必须关闭wpf数据网格的虚拟化.虽然虚拟化确实有助于减少内存占用,但它会增加CPU开销并且滚动体验并非完美无瑕.
根据我们客户的要求,我们必须禁用数据网格中的虚拟化并进一步优化它,现在它可以非常平滑地上下滚动而没有任何延迟.缺点是数据被预加载并保存在存储器中.这是我们可以忍受的解决方案.
然而,排序现在已成为一个大问题.虽然使用CustomSorter:IComparer确实是比通常的SortDecriptors更好的排序替代品,但是在我们的情况下它几乎没有任何区别,尽管整个行都在重绘.
有没有办法提高非虚拟化数据网格的排序速度?
非常感谢,
更新:
我遇到了一个想法,我正在尝试实施.取消绑定Itemssource,进行排序,一旦排序完成,重新绑定Itemssource.
为了实现这一点,我从DataGrid派生来捕获SortHandler(即用户点击列时)
public class CustomSortDataGrid : DataGrid
{
public CustomSortDataGrid()
{
Sorting += SortHandler;
}
private void SortHandler(object sender, DataGridSortingEventArgs e)
{
DataGridColumn column = e.Column;
IComparer comparer = null;
// prevent the built-in sort from sorting
e.Handled = true;
ListSortDirection direction = (column.SortDirection != ListSortDirection.Ascending) ? ListSortDirection.Ascending : ListSortDirection.Descending;
//set the sort order on the column
column.SortDirection = direction;
//use a ListCollectionView to do the sort.
var lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(ItemsSource);
comparer = new …Run Code Online (Sandbox Code Playgroud) 我是Bash Script的新手.我在Ubuntu中运行以下简单脚本,如下所示:
sudo bash -x Script.sh
Run Code Online (Sandbox Code Playgroud)
输出:
+ $'\r'
: command not found
+ $'\r'
: command not found
+ $'\r'
: command not found
+ adminEmail=$'info@domain.com\r'
+ $'\r'
: command not found
' echo 'database name:
database name:
+ read $'dbname\r'
Run Code Online (Sandbox Code Playgroud)
实际的脚本:
#!/bin/bash
# Installation script for latest Wordpress website on Ubuntu
#
# Kave
# December 27, 2011
adminEmail="info@domain.com"
echo "database name:"
read dbname
Run Code Online (Sandbox Code Playgroud)
这些'\r'错误消息会出现什么?甚至评论似乎都不被理解......
我的导航栏中有一个帮助按钮,具有弹出功能.
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<div class="nav pull-right">
<div class="cb_inline_block">
<a class="btn btn-small cb_inline_block icon timezone_help" data-content="{% trans 'hahaha' %}" rel="popover" href="#" data-original-title="{% trans 'Time Zone' %}"><i class="icon-question-sign icon-large"></i></a>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
$(document).ready(function () { $('.timezone_help').click(show_timezone_help); };
function show_timezone_help(event){
event.preventDefault();
$('.timezone_help').popover('show');
}
Run Code Online (Sandbox Code Playgroud)
但是当我点击它时,弹出窗口隐藏在导航栏后面.
我真的必须手动设置z-index吗?那会很痛苦.我必须做错事.谢谢.

这是我在Flask-RESTful中进行单元测试的一部分.
self.app = application.app.test_client()
rv = self.app.get('api/v1.0/{0}'.format(ios_sync_timestamp))
eq_(rv.status_code,200)
Run Code Online (Sandbox Code Playgroud)
在命令行中,我可以使用curl将用户名:密码发送到服务:
curl -d username:password http://localhost:5000/api/v1.0/1234567
Run Code Online (Sandbox Code Playgroud)
如何在单元测试的get()中实现相同的功能?
由于我的get/put/post需要身份验证,否则测试将失败.
python unit-testing basic-authentication flask flask-restful
在 Fast API 文档中建议使用 .env 来加载配置。只是据我所知它只支持字符串。
from fastapi import FastAPI
from pydantic import BaseSettings
class Settings(BaseSettings):
api_tokens = []
class Config:
env_file = ".env"
settings = Settings()
app = FastAPI()
Run Code Online (Sandbox Code Playgroud)
我通常每隔几个月更改一次 API 令牌,将新的令牌添加到列表中,并在一段时间后删除旧的令牌。这为用户提供了足够的时间升级到最新版本而不会造成任何中断。同时,两个 API 令牌都将在一段时间内有效。
但我无法在文件中定义列表.env。
API_TOKENS = abc123,abc321
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
更新:
这实际上是可能的。下面的答案是正确的,但是我仍然必须像这样更改类型:
class Settings(BaseSettings):
api_tokens: list
Run Code Online (Sandbox Code Playgroud) I am running flask, pymongo and flask-login as a stack.
My flask app is running fine locally, but once I deploy it with uwsgi on nginx, I get a strange unicode error from flask_login extension.
In short:
TypeError: decoding Unicode is not supported
Run Code Online (Sandbox Code Playgroud)
Traceback:
[pid: 21753|app: 0|req: 5/5] 84.207.253.34 () {38 vars in 600 bytes} [Thu Jun 13 16:51:08 2013] GET / => generated 0 bytes in 4 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core …Run Code Online (Sandbox Code Playgroud) 我正在创建一个股票交易模拟器,其中最后几天的交易价格被视为开盘价并在当天模拟.
为此,我生成的随机双数可能是lastTradePrice的-5%,比lastTradePrice高5%.然而,在大约240次迭代之后,我看到生成的双数如何越来越小,接近于零.
Random rand = new Random();
Thread.Sleep(rand.Next(0,10));
Random random = new Random();
double lastTradeMinus5p = model.LastTradePrice - model.LastTradePrice * 0.05;
double lastTradePlus5p = model.LastTradePrice + model.LastTradePrice * 0.05;
model.LastTradePrice = random.NextDouble() * (lastTradePlus5p - lastTradeMinus5p) + lastTradeMinus5p;
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我试图通过利用获得随机种子Thread.sleep().然而它并非真正随机化.为什么总会产生较小的数字呢?

更新:
数学本身实际上很好,尽管Jon已经证明了它的下降趋势.此处还解释了在范围之间获取随机双数.
真正的问题是种子Random.我遵循Jon的建议,Random在所有三个价格的线程中保持相同的实例.这已经产生了更好的结果; 价格实际上反弹回来了.我仍在调查并接受如何改进这一建议的建议.Jon给出的链接提供了一篇很好的文章,介绍了如何为每个线程生成一个随机实例.
顺便说一下,如果你有兴趣,整个项目是开源的.(在浏览器中使用WCF,WPF,PRISM 4.2,.NET 4.5堆栈)
该TransformPrices呼叫是发生在这里的一个单独的线程.
如果我保持相同的随机实例会发生这种情况:

这是通过RandomProvider.GetThreadRandom();文章中指出的:
