<DataGrid Margin="0,90,0,0" Grid.Row="1" EnableColumnVirtualization="False" EnableRowVirtualization="False"
x:Name="deviceDataGrid" ItemsSource="{Binding}"
AlternatingRowBackground="#FFB0E0FF"
AutoGenerateColumns="False" FontSize="14" HorizontalScrollBarVisibility="Disabled" >
<DataGrid.Columns>
<!--CamaraName , FrameRate, DllName, Ip, Port, Channel, Account, PassWord, AreaId -->
<DataGridTextColumn Header="摄像头名字" Width="*" Binding="{Binding DeviceName}"/>
<DataGridTextColumn Header="帧率" Width="*" Binding="{Binding FrameRate}" MaxWidth="50"/>
<DataGridTextColumn Header="动态链接文件" Width="*" Binding="{Binding DllName}"/>
<DataGridTextColumn Header="Ip地址" Width="*" Binding="{Binding Ip}" IsReadOnly="True" MaxWidth="120"/>
<DataGridTextColumn Header="端口" Width="*" Binding="{Binding Port}" IsReadOnly="True" MaxWidth="60"/>
<DataGridTextColumn Header="通道号" Width="*" Binding="{Binding Channel}" IsReadOnly="True" MaxWidth="60"/>
<DataGridTextColumn Header="登录名" Width="*" Binding="{Binding Account}"/>
<DataGridTextColumn Header="登录密码" Width="*" Binding="{Binding PassWord}"/>
<!--DataGridComboBoxColumn Header="所属区域" Width="*" SelectedValueBinding="{Binding Path=AreaName}" TextBinding="{Binding Path=AreaName}" SelectedItemBinding="{Binding Path=AreaId}"/-->
<!--DataGridTemplateColumn Header="Template模式">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Name="areaListComboBox" SelectedValue="{Binding Path=AreaName}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn-->
<DataGridComboBoxColumn Header="所属区域" TextBinding="{Binding Path=Text}" >
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding AreaInfo}" />
<Setter Property="SelectedValue" Value="{Binding AreaIdSelected}" />
<Setter Property="SelectedValuePath" Value="{Binding AreaId_Camara}" />
<Setter Property="DisplayMemberPath" Value="{Binding AreaName_Camara}" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding AreaInfo}" />
<Setter Property="SelectedValue" Value="{Binding AreaIdSelected}" />
<Setter Property="SelectedValuePath" Value="{Binding AreaId_Camara}" />
<Setter Property="DisplayMemberPath" Value="{Binding AreaName_Camara}" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>
<DataGridCheckBoxColumn MaxWidth="50" Header="选中" Width="*" Binding="{Binding Choose}"/>
<DataGridTextColumn Header="状态" Width="*" Binding="{Binding State}" IsReadOnly="True" MaxWidth="120" />
</DataGrid.Columns>
</DataGrid>
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace DataGridTestWPF
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
ObservableCollection<CamaraInfo> camaraInfoCollection = new ObservableCollection<CamaraInfo>();
public MainWindow()
{
InitializeComponent();
camaraInfoCollection.Add(new CamaraInfo("摄像头1", 1, "DLL.dll", "192.168.1.253", 8000, 1,
"admin", "12345", "区域名oo", 1, false, "无"));
camaraInfoCollection.Add(new CamaraInfo("摄像头1", 1, "DLL.dll", "192.168.1.253", 8000, 1,
"admin", "12345", "区域名oo", 1, false, "无"));
camaraInfoCollection.Add(new CamaraInfo("摄像头1", 1, "DLL.dll", "192.168.1.253", 8000, 1,
"admin", "12345", "区域名oo", 1, false, "无"));
deviceDataGrid.ItemsSource = camaraInfoCollection;
Dictionary<int, string> mydic = new Dictionary<int, string>() {
{0,"aaaa"},
{1,"bbbb"},
{2,"cccc"}
};
cobxUserType.ItemsSource = mydic;
cobxUserType.SelectedValuePath = "Key";
cobxUserType.DisplayMemberPath = "Value";
//areaListComboBox.ItemsSource = areaInfoCollection;
}
private void submit_Click(object sender, RoutedEventArgs e)
{
//Control.se
System.Collections.IList camaraInfoSelectedCollection = (System.Collections.IList)deviceDataGrid.SelectedItems;
MessageBox.Show(((CamaraInfo)deviceDataGrid.SelectedItems[0]).AreaIdSelected + "");
}
}
public class AreaInfo
{
public string AreaName { get; set; }
public int AreaId { get; set; }
public AreaInfo( string AreaName, int AreaId )
{
this.AreaName = AreaName;
this.AreaId = AreaId;
}
}
public class CamaraInfo
{
public event PropertyChangedEventHandler PropertyChanged;
public string DeviceName { get; set; }
public uint FrameRate { get; set; }
public string DllName { get; set; }
public string Ip { get; set; }
public uint Port { get; set; }
public uint Channel { get; set; }
public string Account { get; set; }
public string PassWord { get; set; }
public string AreaName_Camara { get; set; }
public string AreaId_Camara { get; set; }
public bool Choose { get; set; }
public string State { get; set; }
private int areaIdSelected;
public int AreaIdSelected
{
get
{
return areaIdSelected;
}
set
{
areaIdSelected = value;
if (PropertyChanged != null)//有改变
{
PropertyChanged(this, new PropertyChangedEventArgs("AreaIdSelected"));//对Name进行监听
}
}
}
public string Text { get; set; }
public ObservableCollection<AreaInfo> AreaInfo { get; set; }
ObservableCollection<AreaInfo> areaInfoCollection = new ObservableCollection<AreaInfo>();
public CamaraInfo(string DeviceName, uint FrameRate, string DllName, string Ip, uint Port, uint Channel,
string Account, string PassWord, string AreaName, uint AreaId, bool Choose, string State)
{
this.DeviceName = DeviceName;
this.FrameRate = FrameRate;
this.DllName = DllName;
this.Ip = Ip;
this.Port = Port;
this.Channel = Channel;
this.Account = Account;
this.PassWord = PassWord;
this.AreaName_Camara = "AreaName";
this.AreaId_Camara = "AreaId";
this.AreaIdSelected = 2;
this.Text = "AreaId2";
this.Choose = Choose;
this.State = State;
areaInfoCollection.Add(new AreaInfo("AreaId1", 1));
areaInfoCollection.Add(new AreaInfo("AreaId2", 2));
AreaInfo = areaInfoCollection;
}
}
}
下载地址:
http://download.youkuaiyun.com/detail/smallnew198705/8226919