8,734
社区成员
发帖
与我相关
我的任务
分享
<datagrid:DataGrid x:Name="gridUsers" AutoGenerateColumns="False" HorizontalAlignment="Left" Height="282" FrozenColumnCount="4" KeyDown="gridUsers_KeyDown" SelectionChanged="gridUsers_SelectionChanged">
<datagrid:DataGrid.Columns>
<!--选择-->
<datagrid:DataGridTemplateColumn Header="选择">
<datagrid:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding isChecked, Mode=TwoWay}" HorizontalAlignment="Center" VerticalAlignment="Center"></CheckBox>
</DataTemplate>
</datagrid:DataGridTemplateColumn.CellTemplate>
</datagrid:DataGridTemplateColumn>
void gridUsers_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string showMessage = "";
if (gridUsers.SelectedItems.Count > 1)
{
foreach (isCheckedUsers dd in this.gridUsers.SelectedItems)
{
dd.isChecked = true;
}
}
}
<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">
<Grid x:Name="LayoutRoot" Background="White">
<sdk:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding isCheckedUsersList}" Margin="10,10,0,0" Name="dataGrid1" SelectionChanged="dataGrid1_SelectionChanged">
<sdk:DataGrid.Columns>
<!--选择-->
<sdk:DataGridTemplateColumn Header="选择">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding isChecked, Mode=TwoWay}" HorizontalAlignment="Center" VerticalAlignment="Center"></CheckBox>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTextColumn Binding="{Binding Name,Mode=TwoWay}" Header="名称" CanUserResize="True" Width="200" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</Grid>
</UserControl>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ComponentModel;
namespace SilverlightApplication1
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.DataContext = this;
}
public List<isCheckedUsers> isCheckedUsersList
{
get
{
return new List<isCheckedUsers> {
new isCheckedUsers{isChecked = false,Name="sdfdsfds"},
new isCheckedUsers{isChecked = false,Name="似懂非懂所发生的"},
new isCheckedUsers{isChecked = false,Name="和风电股份"},
new isCheckedUsers{isChecked = false,Name="fgertretretre"},
};
}
}
private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid gridUsers = sender as DataGrid;
string showMessage = "";
if (gridUsers.SelectedItems.Count > 0)
{
foreach (isCheckedUsers dd in gridUsers.SelectedItems)
{
dd.isChecked = true;
}
}
}
}
public class isCheckedUsers : ViewModelBase
{
private bool _isChecked;
public bool isChecked
{
get { return _isChecked; }
set
{
if (_isChecked == value)
return;
_isChecked = value;
RaisePropertyChanged("isChecked");
}
}
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name == value)
return;
_name = value;
RaisePropertyChanged("Name");
}
}
}
public class ViewModelBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void RaisePropertyChanged(string propertyName)
{
VerifyPropertyName(propertyName);
var handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
public void VerifyPropertyName(string propertyName)
{
var myType = this.GetType();
if (myType.GetProperty(propertyName) == null)
{
throw new ArgumentException("Property not found", propertyName);
}
}
}
}