我有一个特定的xaml数据绑定问题.我有两个列表框(主 - 详细信息,因此列表框将IsSynchronizedWithCurrentItem设置为true).我希望我的viewmodel知道详细信息列表框中的所选项何时更改:我在viewmodel类上创建了一个int属性(即我们可以调用此属性SelInd)并在详细信息viewmodel上以这种方式绑定:
SelectedIndex="{Binding Mode=OneWayToSource, Path=SelInd}"
Run Code Online (Sandbox Code Playgroud)
我在运行时没有得到任何错误/异常,但绑定不会触发:当所选项目发生更改时,我的viewmodel属性不会更新.如果我将绑定模式更改为TwoWay,一切正常,但这不是我需要的.我需要它与OneWayToSource一起使用(顺便说一句,如果我将SelectedItem绑定到SelectedValue属性,则适用相同的非工作行为).
为什么这些绑定不会触发OneWayToSource?
这是一个更完整的代码示例,只是为了让事情更清楚:编辑:我无法显示真实代码(NDA)但我会在这里展示更简单和类似的东西(Page的DataContext是一个PageViewModel类的实例解释我只需要我的viewmodel类的SelInd属性应该始终在第二个ListBox中反映SelectedIndex的值.我已经找到了这样做的替代方法(代码隐藏中的事件处理程序或附加行为)但是现在我只是好奇它为什么它不适用于OneWayToSource绑定.
<Page>
<ContentControl x:Name="MainDataContext">
<Grid DataContext={Binding Path=Masters}>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ListBox Grid.Column="0"
SelectionMode="Single"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding }">
<ListBox.ItemContainerStyle>
...
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
....
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<ListBox Grid.Column="1"
SelectionMode="Single"
SelectedIndex="{Binding Mode=OneWayToSource, ElementName=MainDataContext,Path=DataContext.SelInd}"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Path=Details}">
<ListBox.ItemContainerStyle>
...
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
....
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</ContentControl>
</Page>
Run Code Online (Sandbox Code Playgroud)
这是视图模型类的草图
public class PageViewModel{
public ObservableCollection<MasterClass> Masters {get;set;}
public int SelInd {get;set;}
....
}
Run Code Online (Sandbox Code Playgroud)
这里是MasterClass,它只是一个名字和一个细节列表
public class MasterClass{
public ObservableCollection<DetailsClass> Details …
Run Code Online (Sandbox Code Playgroud) 所以我是python的新手,在整个学习过程中我很可能会问很多菜鸟问题(如果他们当然没有被问过/回答过).
我有一个问题是,如果有一种方法可以使用pickle将多个词典保存到一个文本文件中,或者每个单独的词典都必须保存到它自己的单独文件中.例如,如果我想创建一个程序来管理Web帐户,每个帐户都有各种任意键/值,我可以将所有这些个人帐户保存为一个存档作为单独的词典吗?
在此先感谢,一个菜鸟会欣赏示例代码和/或任何建议.
我有点困惑这个代码结果:
#include <stdio.h>
int g;
void afunc(int x)
{
g = x; /* this sets the global to whatever x is */
}
int main(void)
{
int g = 10; /* Local g is now 10 */
afunc(20); /* but this function will set it to 20 */
printf("%d\n", g); /* so this will print "20" */
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么结果是10不是20?
我安装了yeoman并开始了官方文档中提供的示例.我完成了建议的操作
yo webapp
bower install underscore
grunt
Run Code Online (Sandbox Code Playgroud)
在运行grunt之后,我收到了消息
grunt-cli: The grunt command line interface. (v0.1.9)
Fatal error: Unable to find local grunt.
If you're seeing this message, either a Gruntfile wasn't found or grunt
hasn't been installed locally to your project. For more information about
installing and configuring grunt, please see the Getting Started guide:
http://gruntjs.com/getting-started
Run Code Online (Sandbox Code Playgroud)
请注意,已经安装了grunt
npm install -g grunt-cli
Run Code Online (Sandbox Code Playgroud)
和
npm install -g grunt
Run Code Online (Sandbox Code Playgroud)
你在项目根目录中生成了Gruntfile.js,我正在运行该命令.
package.json也已生成:
"name": "testyo",
"version": "0.0.0",
"dependencies": {},
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-copy": "~0.4.1", …
Run Code Online (Sandbox Code Playgroud) 我遇到了这个问题:onKeyPress Vs. onKeyUp和onKeyDown,我发现keypress
只要在文本输入中键入字符就会触发它.我试图运行以下代码.它应该在文本长度超过0时使输入的背景变为黄色,或者在它为0时使白色变为白色.我无法使其工作.如果我尝试做keydown
,我有以下问题:
如果我只输入一个字符放开,背景仍为白色.
如果那时,我按下backspace
,从而清除那一个字符,它变成黄色(正好与我想要的相反!).如果我现在按(Alt
或Shift
)任何其他键,它将再次变为白色.事实上,如果不是Alt
或者Shift
我输入一个角色,它仍将保持白色,将我们带回第一个问题.
如果我键入按下一个字符键并按住它,则第一个字符的背景保持白色,然后变为黄色的第二个字符.
如果我keyup
只尝试,这些是问题(如预期的那样):
如果我尝试keypress
,我面临同样的问题keydown
,即使它应该工作.
如果我绑定3个处理程序keyup
,keydown
和keypress
(上帝我绝望),几乎所有的问题都解决了,除了问题3 keydown
:如果我键入按下一个字母键不放,背景仍然是白色的第一个字符,而变成黄色第二个字符开始.
我该如何解决这个问题?
JS:
$(document).ready(function() {
$("input").bind("keydown", function() {
if ($(this).val().length == 0) {
$(this).css('background', 'white');
} else {
$(this).css('background', 'yellow');
}
});
$("input").bind("keypress", function() {
if ($(this).val().length == 0) {
$(this).css('background', 'white');
} else {
$(this).css('background', 'yellow');
}
});
$("input").bind("keyup", function() …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种在绘图旁边添加表格的方法(在实际的笛卡尔画布之外).该表将是排序索引,其中更多信息与图上已有的标签相关.我有一个使用ggplot创建的散点图:
该图的R代码如下:
png("image.png", width = 2000, height = 1500, res = 85);
ggplotXY <- ggplot(scatterPlotData, aes(x=x, y=y, colour=labels, label=labels)) +
geom_point() +
geom_text(hjust=0, vjust=0)
ggplotXY
dev.off()
Run Code Online (Sandbox Code Playgroud)
我的数据框中有一个列,其中包含该点的名称.所以,例如,这些行很长:
1: Name One
2: Name Two
3: Name Three
.
.
.
150: Name 150
Run Code Online (Sandbox Code Playgroud)
我该如何添加这样一张桌子?我不想在散点图中添加整个名称,因为它会重叠很多点.正如您所看到的,即使数字本身重叠,尽管它是可以接受的.
欢迎并赞赏投入.
我有这个按列城市分组的报告.当我在金额字段中添加总计时,它不显示每个城市的小计...只是最后的总计.
如何在Cognos report studio中添加小计行?
我正在尝试设置一个值来输入与ID匹配的元素.
但是jQuery.each只获取第一个/一个输入元素.
我正在尝试执行ajax帖子,我需要这两个ID具有相同的值.
HTML
@Html.HiddenFor(u => u.TransID)
//<input id="TransID" name="TransID" type="hidden" value="0">
@Html.DropDownListFor(u => u.TransID, Model.TransModes)
//<input id="TransID" name="TransID" value="0">
Run Code Online (Sandbox Code Playgroud)
脚本
$("#TransID").each(function () {
$(this).val("2")
alert($(this).val());
});
Run Code Online (Sandbox Code Playgroud)
干杯
我想自定义特定系列中最后一个点的工具提示,保留本系列中的其他点,以及其他系列,使用默认的工具提示格式.基本上,我正在寻找类似于这个配置的东西.在此先感谢您的帮助!
series: [{
tooltip: { // ?? tooltip does not work inside series
formatter: function() {
if (lastPoint in the series) { // ?? how to determine if lastPoint
return '<b>Final result is </b> ' + this.y;
}
// ?? return default format if it is not the last point in the series
}
},
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6]
}, {
data: [194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2]
}]
Run Code Online (Sandbox Code Playgroud) 我的主要目标是让页面上的所有图像可流动,就好像它们是可点击的链接一样.为了做到这一点,我将创建一个canvas.linkRect()并将其放在渲染的Image上.这是我如何使用canvas.linkRect()的一个例子:
canvas.linkURL(
url='url_goes_here',
rect=(x1, y1, x2, y2), #(x1, y1) is the bottom left coordinate of the rectangle, (x2, y2) is the top right
thickness=0, relative=1
)
Run Code Online (Sandbox Code Playgroud)
在查看BaseDocTemplate类之后,我找到了一个名为afterFlowable的方法(self,flowable).我重写了那个方法并在传入的flowable上调用了dir(),结果如下:
['__call__', '__doc__', '__init__', '__module__', '_doctemplateAttr',
'_drawOn', '_fixedHeight', '_fixedWidth', '_frameName', '_hAlignAdjust',
'_showBoundary', '_traceInfo', 'action', 'apply', 'draw', 'drawOn', 'encoding',
'getKeepWithNext', 'getSpaceAfter', 'getSpaceBefore', 'hAlign', 'height',
'identity', 'isIndexing', 'locChanger', 'minWidth', 'split', 'splitOn', 'vAlign',
'width', 'wrap', 'wrapOn', 'wrapped']
Run Code Online (Sandbox Code Playgroud)
它有一个宽度和高度属性我可以用来确定linkRect()应该有多大(x2和y2应该是多少),但没有关于flowable开始的位置的信息(x1和y1应该是什么?).
如果所有其他方法都失败了,我想到了以某种方式将Frame和Image Flowable配对在一起,因为Frame有我想要创建linkRect()的信息.然而,在知道何时以及如何使用它的各个Flowables列表来排序帧列表似乎是一件麻烦的事情,除了必须确切地知道将这些帧放在图像的哪个位置之外.还有另一种方法可以实现这一目标还是不可能?
谢谢!
javascript ×2
jquery ×2
python ×2
c ×1
c# ×1
cognos ×1
data-binding ×1
data.table ×1
dom ×1
graph ×1
gruntjs ×1
highcharts ×1
keydown ×1
keypress ×1
keyup ×1
pickle ×1
platypus ×1
plot ×1
python-3.x ×1
r ×1
reportlab ×1
selecteditem ×1
tooltip ×1
wpf ×1
xaml ×1
yeoman ×1