小编ctd*_*d25的帖子

仅限ListViewItem的ContextMenu

我有一个上下文菜单 - 问题是我需要它只在单击listviewitem时打开.现在,如果我点击列表视图中的任何位置或标题中,它将打开.

<ListView> 
    <ListView.ContextMenu>
        <ContextMenu>
            <MenuItem Header="More Info" Command="{Binding MoreInfo}" />
        </ContextMenu>
     </ListView.ContextMenu>
     <ListView.View> 
         <GridView> 
           <!-- columns and stuff here -->
         </GridView>
     </ListView.View>
 </ListView>
Run Code Online (Sandbox Code Playgroud)

我已经尝试将ContextMenu添加为资源并将其应用为样式,但是这会破坏命令(单击"更多信息"应该打开一个对话框窗口,不会以这种方式工作)

<ListView.Resources>
    <ContextMenu x:Key="ItemContextMenu">
        <MenuItem Header="More Info" Command="{Binding MoreInfo}" Background="WhiteSmoke" />
    </ContextMenu>
</ListView.Resources>
<ListView.ItemContainerStyle>
    <Style TargetType="{x:Type ListViewItem}" >
        <Setter Property="ContextMenu" Value="{StaticResource ItemContextMenu}" />
    </Style>
</ListView.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)

所以不确定如何将上下文菜单限制为listviewitem并使命令有效.

c# wpf contextmenu listviewitem

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

Pandas read_table错误

我试图将制表符分隔的文本文件读入数据帧.

这是文件在Excel中的显示方式:

CALENDAR_DATE   ORDER_NUMBER    INVOICE_NUMBER  TRANSACTION_TYPE    CUSTOMER_NUMBER   CUSTOMER_NAME
5/13/2016 0:00    13867666       6892372              S                 2026            CUSTOMER 1
Run Code Online (Sandbox Code Playgroud)

导入到df:

df = p.read_table("E:/FileLoc/ThisIsAFile.txt", encoding = "iso-8859-1")
Run Code Online (Sandbox Code Playgroud)

现在它没有看到前3列作为列索引的一部分(df [0] = Transaction Type),并且所有标题都转移以反映这一点.

                                CALENDAR_DATE   ORDER_NUMBER    INVOICE_NUMBER
5/13/2016 0:00 13867666 6892372       S             2026          CUSTOMER 1
Run Code Online (Sandbox Code Playgroud)

我试图操纵文本文件,然后将其作为最终结果导入mysql数据库.

python mysql pandas

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

内容更新时自动调整列表视图列的大小

我试图让列表视图中的 gridviewcolumns 在更新绑定源(视图模型上的可观察集合)时自动调整内容大小。

列表视图填充正常,但当我刷新/更新集合时不起作用。这是我到目前为止正在尝试的解决方案:

XAML:

<ListView x:Name="ListView" ItemsSource="{Binding Collection, NotifyOnSourceUpdated=True}" SourceUpdated="ListView_SourceUpdated">
    <ListView.View>
        <GridView>
            <GridViewColumn Width="Auto" Header="Test" DisplayMemberBinding={Binding Test}" />
        </GridView>
    </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

隐藏代码:

private void requestsListView_SourceUpdated(object sender, DataTransferEventArgs e)
    {
        GridView gv = requestsListView.View as GridView;
        if (gv != null)
        {
            foreach (var c in gv.Columns)
            {
                if (double.IsNaN(c.Width))
                {
                    c.Width = c.ActualWidth;
                }
                c.Width = double.NaN;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

据我所知,SourceUpdated 事件永远不会触发。不知道这是不是因为datacontext设置为ViewModel的原因?不确定如何与 VM 中的 ListView 交互。

有没有更好的方法来尝试使用 ViewModel 来做到这一点?还是个新手,正在尝试学习 MVVM。

c# wpf listview mvvm

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

Pandas - 计算不包括当前行的组的滚动平均值

例如:

data = {'Platoon': ['A','A','A','A','A','A','B','B','B','B','B','C','C','C','C','C'],
        'Date' : [1,2,3,4,5,6,1,2,3,4,5,1,2,3,4,5],
       'Casualties': [1,4,5,7,5,5,6,1,4,5,6,7,4,6,4,6]}
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

这适用于计算滚动平均值,包括当前行:

df['avg'] = df.groupby(['Platoon'])['Casualties'].transform(lambda x: x.rolling(2, 1).mean())
Run Code Online (Sandbox Code Playgroud)

这使:

Platoon   Date Casualties Avg  
        A   1   1         1.0
        A   2   4         2.5
        A   3   5         4.5
        A   4   7         6.0
        ......
Run Code Online (Sandbox Code Playgroud)

我想得到的是:

Platoon   Date Casualties Avg  
        A   1   1         1.0
        A   2   4         1.0
        A   3   5         2.5
        A   4   7         4.5
        ......
Run Code Online (Sandbox Code Playgroud)

我怀疑我可以在这里使用 shift 但我想不通!

pandas pandas-groupby

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

Scrapy - 抓取 html 自定义属性

我正在尝试抓取网站,并且想抓取自定义 html 属性。

首先我得到链接:

result.css('p.paraclass a').extract()
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

 <a href="https://thisisawebsite.com" data-id="12345" class="aclass">I am a link</a>
Run Code Online (Sandbox Code Playgroud)

我想抓取 data-id 标签的值。我可以通过获取整个链接然后操作它来做到这一点,但我想弄清楚是否有办法直接使用scrapy选择器来做到这一点。

python scrapy

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

标签 统计

c# ×2

pandas ×2

python ×2

wpf ×2

contextmenu ×1

listview ×1

listviewitem ×1

mvvm ×1

mysql ×1

pandas-groupby ×1

scrapy ×1