[英]wpf Button in listview with binding
我取消了要收集的一類課程
public class inoutboundpd
{
public string srcip { get; set; }
public string srcport { get; set; }
public string dstip { get; set; }
public string dstport { get; set; }
public string protocol { get; set; }
public Button dpibutton { get; set; }
public Button delbutton { get; set; }
}
ObservableCollection<inoutboundpd> _inboundp = new ObservableCollection<inoutboundpd>();
public ObservableCollection<inoutboundpd> inboundp
{
get { return _inboundp; }
} //*/
這是我未完成的xaml來源
<ListView x:Name="policylistScrollViewer" ItemsSource="{Binding inboundp}" HorizontalAlignment="Left" Height="169" VerticalAlignment="Bottom" ScrollViewer.VerticalScrollBarVisibility="Auto" Width="575">
<ListView.View>
<GridView>
<GridViewColumn Header="Source IP" Width="110" DisplayMemberBinding="{Binding Path=srcip}" />
<GridViewColumn Header="Protocol" Width="50" DisplayMemberBinding="{Binding Path=protocol}" />
GridViewColumn Header="DPI" Width="40" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Content="DPI" Command="{Binding Path=dpibutton}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Delete" Width="40" CellTemplate="{DynamicResource delbutton}">
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
這兩個按鈕對我的意圖不起作用。 和
Button bt = new Button();
bt.Content = "DPI";
bt.Tag = url + " " + image + " " + audio + " " + video + " " + word;
//bt.PreviewMouseDown += new MouseButtonEventHandler(dpiconfirm);
_inboundp.Add(new inoutboundpd { srcip = isip, srcport = isport, dstip = idip, dstport=idport , protocol=protocol, dpibutton=bt, delbutton=dbt });
這行不通。 如何將bt按鈕綁定到列表視圖按鈕列? 我想通過事件'dpiconfirm'和'Button.Tag等將按鈕動態添加到listview列...
以下是建議性評論的摘要,這些評論可導致可行的解決方案:
dpibutton應該是ICommand,而不是Button。 請參見ButtonBase.Command
public class inoutboundpd
{
public string srcip { get; set; }
public string srcport { get; set; }
public string dstip { get; set; }
public string dstport { get; set; }
public string protocol { get; set; }
public ICommand dpibutton { get; set; }
public ICommand delbutton { get; set; }
}
然后,必須在創建視圖之前設置ICommand
屬性。 為此,您必須創建實現ICommand
類。 確保CanExecute()
實現返回true。
我還建議從MouseButtonEventHandler
和ICommand.Execute
調用公用私有函數來處理按鈕單擊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.