我有一个上下文菜单 - 问题是我需要它只在单击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并使命令有效.
我试图将制表符分隔的文本文件读入数据帧.
这是文件在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数据库.
我试图让列表视图中的 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。
例如:
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 但我想不通!
我正在尝试抓取网站,并且想抓取自定义 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选择器来做到这一点。
c# ×2
pandas ×2
python ×2
wpf ×2
contextmenu ×1
listview ×1
listviewitem ×1
mvvm ×1
mysql ×1
scrapy ×1