小编Sou*_*asu的帖子

如何通过绑定在Canvas中显示项目

我有要使用数据绑定在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)

c# data-binding wpf xaml wpf-controls

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

如何对ObservableCollection进行排序

我有一个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.它的价值取决于集合中的项目顺序.

谢谢.

sorting wpf observablecollection icollectionview

16
推荐指数
3
解决办法
3万
查看次数

每个sc-win32状态代码表示什么?

在我的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.

iis iis-6 error-code iis-logs

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

WPF Popup事件处理 - 如何在Popup打开时触发

我创建了一个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)

根据代码,边框首次显示动画,弹出窗口打开.每次弹出窗口打开时,我需要做些什么更改才能触发边框动画?

wpf triggers popup

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

Logparser查询以获取cookie值

我已abc=1234添加到cookie.

它显示在IIS日志中.但是cs(Cookie)字段显示其他cookie也以分号分隔.

我想使用来获取cookie的值abc.

你能建议一个查询吗?

例如,如果cs(Cookie)具有值+pqr=999;+abc=1234;+xyz=222,则应返回logparser查询1234.

sql cookies logparser

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

Django模型中的复杂过滤器

我想用这样的过滤器查询我的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)

但我无法弄清楚如何为我想要的复杂谓词创建过滤器

python django django-models django-filter

4
推荐指数
1
解决办法
2300
查看次数

删除gulp文件中的windows file readonly属性

我们如何从Windows中的文件夹下的所有文件中删除readonly属性?

更新:问题是如何使用gulpfile删除readonly属性

readonly-attribute gulp

3
推荐指数
1
解决办法
2900
查看次数

Dialogflow:如何将Action参数限制为允许的值之一

假设我AskForFruit在Dialogflow中创建一个意图,用户说:

I want an apple

在这里,苹果被分配给一个参数 fruit

我只想将值限制fruit为“苹果”,“橙色”和“香蕉”

如果用户说“桃子”,代理将回答“请在苹果,橙子和香蕉之间选择”

如何fruit仅将这三种水果的价值限制在其中?

actions-on-google dialogflow-es

3
推荐指数
1
解决办法
1367
查看次数

如何查找鼠标是否已被捕获

我创建了一个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,但这不起作用.

如果我发现鼠标已经被捕获了一些其他对象,我可以在行为中设置条件,以便不再捕获它.

wpf drag-and-drop mouseevent attachedbehaviors mousecapture

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

如何在StackPanel中设置项目顺序

我有一个字符串列表.例如,"abc","pqr","xyz"按此顺序.StackPanel是绑定到此列表的数据.我想在StackPanel中垂直显示列表,但从上到下依次反向显示

"xyz"
"pqr"
"abc"
Run Code Online (Sandbox Code Playgroud)

有没有办法在xaml中执行此操作或者我是否需要重新排序列表?

wpf stackpanel

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