您的位置:首页 > 其它

WPF-Listbox-ListboxItem双击事件实现-MVVM模式

2018-02-01 15:21 639 查看
<ListBox Name="EsCanSelectList" Grid.Row="1"  ItemsSource="{Binding CanSelectList,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding  Path=ExportName}">
<TextBlock.InputBindings>
<MouseBinding Command="{Binding DataContext.EsCanSelectListMouseDoubleClickCommand, ElementName=w}" MouseAction="LeftDoubleClick"></MouseBinding>
</TextBlock.InputBindings>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
DataContext.EsCanSelectListMouseDoubleClickCommand   C#后台鼠标左键双击事件命令实现
ElementName=w    数据源为窗口  w为窗口名称
Path=ExportName  textblock显示数据来源   为CanSelectLis动态数据集合中的一个元素的属性
C#后台代码:
/// <summary>
/// 导出设置的数据模型
/// </summary>
public class ExportModel
{
public int ExportID { get; set; }
public string ExportName { get; set; }
}
视图模型VeiwModel
public class ExportSettingVeiwModel:ViewModels
{
private ObservableCollection<ExportModel> canSelectList;
/// <summary>
/// 可选择字段
/// </summary>
public ObservableCollection<ExportModel> CanSelectList
{
get { return canSelectList; }
set
{
canSelectList = value;
RaisePropertyChanged("CanSelectList");
}
}

public ICommand EsCanSelectListMouseDoubleClickCommand { get; set; }
public ExportSettingVeiwModel()
{
EsCanSelectListMouseDoubleClickCommand = new DelegateCommand(EsCanSelectList_MouseDoubleClick);
CanSelectList = new ObservableCollection<ExportModel>();
ExportModel ceshi = new ExportModel();
ceshi.ExportID = 1;
ceshi.ExportName = "ceshi";
CanSelectList.Add(ceshi);

}

public void EsCanSelectList_MouseDoubleClick()
{
if (CanSelectList.Count > 0 && _exportsetting.EsCanSelectList.SelectedIndex >= 0)
{

}
//{
//    int selectindex = _exportsetting.EsCanSelectList.SelectedIndex;
//   // ExportList.Add(CanSelectList[selectindex]);
//    CanSelectList.RemoveAt(selectindex);
//    if (selectindex < CanSelectList.Count)
//    {
//        _exportsetting.EsCanSelectList.SelectedIndex = selectindex;
//    }
//    else
//    {
//        _exportsetting.EsCanSelectList.SelectedIndex = selectindex - 1;
//    }
//}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: