我有要使用数据绑定在Canvas中显示的项目列表.
ItemsToShowInCanvas = new ObservableCollection<ItemDetail>
{
new ItemDetail {Text = "ABC", Top = 10, Left = 200},
new ItemDetail {Text = "DEF", Top = 100, Left = 300},
new ItemDetail {Text = "PQR", Top = 50, Left = 150}
};
Run Code Online (Sandbox Code Playgroud)
ItemDetail是一个简单的类,具有Text,Top和Left值的自动属性
public class ItemDetail
{
public string Text { get; set; }
public double Top { get; set; }
public double Left { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我对项目进行数据绑定时,它们会出现在画布中.但是这些项目不会出现在使用"上"和"左"属性提到的位置.
<Canvas>
<ItemsControl ItemsSource="{Binding Path=ItemsToShowInCanvas}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Text}" Canvas.Top="{Binding Path=Top}" Canvas.Left="{Binding …Run Code Online (Sandbox Code Playgroud) 我有一个ObservableCollection和一个WPF UserControl是Databound.Control是一个图表,显示ObservableCollection中每个BarData类型项的垂直条.
ObservableCollection<BarData>
class BarData
{
public DateTime StartDate {get; set;}
public double MoneySpent {get; set;}
public double TotalMoneySpentTillThisBar {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
现在我想基于StartDate对ObservableCollection进行排序,以便BarData将在集合中按StartDate的顺序递增.然后我可以像这样计算每个BarData中TotalMoneySpentTillThisBar的值 -
var collection = new ObservableCollection<BarData>();
//add few BarData objects to collection
collection.Sort(bar => bar.StartData); // this is ideally the kind of function I was looking for which does not exist
double total = 0.0;
collection.ToList().ForEach(bar => {
bar.TotalMoneySpentTillThisBar = total + bar.MoneySpent;
total = bar.TotalMoneySpentTillThisBar;
}
);
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用ICollectionView对数据进行排序,过滤数据但不会改变实际的集合.我需要对实际集合进行排序,以便我可以为每个项目计算TotalMoneySpentTillThisBar.它的价值取决于集合中的项目顺序.
谢谢.
在我的IIS日志中,我看到许多sc-bytes = 0的实例.
这些条目的时间通常高于平均值.我可以看到sc-win32-status的各种值,如64,22,121,1236等.大多数都有sc-status 200.很少有sc-win32-status 400.
现在我想分析每种情况,以弄清楚IIS中发生了什么.但是这个MSDN站点只给出了错误名称,而不是关于何时可以发生的详细信息.我在这里找到了一篇很好的文章,它为sc-win32-status = 64和sc-status = 200提供了一个很好的场景描述,时间很长.
我想为所有sc-win32-status提供类似的解释.是否有任何网站提供有关sc-win32-status代码的方案的详细信息?
否则,任何人都可以解释我们何时获得sc-win32-status的以下值:64,22,121,1236.
我创建了一个WPF Popup,其中包含一个带边框的网格.有一些与边框关联的动画,我想在每次Popup打开时触发.
目前代码是这样的
<Popup x:Name="myPopUp" >
<Border x:Name="myBorder" >
<Border.Triggers>
<EventTrigger RoutedEvent="Popup.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="myBorder"
Storyboard.TargetProperty="Height"
From="10" To="255" Duration="0:0:0.20" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
<Grid />
</Border>
</Popup>
Run Code Online (Sandbox Code Playgroud)
根据代码,边框首次显示动画,弹出窗口打开.每次弹出窗口打开时,我需要做些什么更改才能触发边框动画?
我已abc=1234添加到cookie.
它显示在IIS日志中.但是cs(Cookie)字段显示其他cookie也以分号分隔.
我想使用logparser来获取cookie的值abc.
你能建议一个查询吗?
例如,如果cs(Cookie)具有值+pqr=999;+abc=1234;+xyz=222,则应返回logparser查询1234.
我想用这样的过滤器查询我的Django模型:
(pseudo code)
field1values = ['val11','val12']
field2values = ['val21','val22']
result = (field1 == 'val11' | field1 == 'val12') & (field2 == 'val21' | field2 == 'val22')
Run Code Online (Sandbox Code Playgroud)
如果我不得不在这里只查询field1,代码可能如下所示:
clauses = []
for item in field1values:
clauses.append(MyModel.objects.filter(field1=item))
result = reduce(lambda x, y: x | y, clauses)
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何为我想要的复杂谓词创建过滤器
我们如何从Windows中的文件夹下的所有文件中删除readonly属性?
更新:问题是如何使用gulpfile删除readonly属性
假设我AskForFruit在Dialogflow中创建一个意图,用户说:
I want an apple
在这里,苹果被分配给一个参数 fruit
我只想将值限制fruit为“苹果”,“橙色”和“香蕉”
如果用户说“桃子”,代理将回答“请在苹果,橙子和香蕉之间选择”
如何fruit仅将这三种水果的价值限制在其中?
我创建了一个usercontrol,其中包含Canvas和Canvas上的Button.为了能够在画布上移动按钮,我附加了一个如下所示的DragBehavior:
class DragOverCanvasBehavior : Behavior<FrameworkElement>
{
private Point _mouseStartPosition;
protected override void OnAttached()
{
AssociatedObject.MouseLeftButtonDown += (sender, e) =>
{
_mouseStartPosition = e.GetPosition((Canvas) AssociatedObject.Parent);
AssociatedObject.CaptureMouse();
};
AssociatedObject.MouseLeftButtonUp += (sender, e) => AssociatedObject.ReleaseMouseCapture();
AssociatedObject.MouseMove += (sender, e) =>
{
var point = e.GetPosition((Canvas)AssociatedObject.Parent) - _mouseStartPosition;
if (AssociatedObject.IsMouseCaptured)
{
Canvas.SetTop(AssociatedObject, point.Y);
Canvas.SetLeft(AssociatedObject, point.X);
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
出于商业原因,如果我按住并拖动画布,我也需要移动画布.我使用类似的Behavior类来改变Canvas边距并给它看起来好像它在拖动时随鼠标指针移动一样.此行为还捕获鼠标.
现在的问题是 - 如果我单击并拖动按钮,Canvas也会获取鼠标事件并开始被拖动.如何确保在拖动Button时Canvas Behavior不会获得鼠标事件.
我尝试在行为中放置e.Handled = true,但这不起作用.
如果我发现鼠标已经被捕获了一些其他对象,我可以在行为中设置条件,以便不再捕获它.
我有一个字符串列表.例如,"abc","pqr","xyz"按此顺序.StackPanel是绑定到此列表的数据.我想在StackPanel中垂直显示列表,但从上到下依次反向显示
"xyz"
"pqr"
"abc"
Run Code Online (Sandbox Code Playgroud)
有没有办法在xaml中执行此操作或者我是否需要重新排序列表?
wpf ×5
c# ×1
cookies ×1
data-binding ×1
django ×1
error-code ×1
gulp ×1
iis ×1
iis-6 ×1
iis-logs ×1
logparser ×1
mousecapture ×1
mouseevent ×1
popup ×1
python ×1
sorting ×1
sql ×1
stackpanel ×1
triggers ×1
wpf-controls ×1
xaml ×1