久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

DataGrid內(nèi)綁定ComboBox和ListBox以及取值

 賈朋亮博客 2011-05-06

本章主要解決如何在DataGrid的行內(nèi)綁定ComboBox和ListBox,。在數(shù)據(jù)集方面,,先建立一個(gè)城市實(shí)體類,,這個(gè)實(shí)體類有3個(gè)屬性,,分別是城市名,、城市區(qū)號(hào),、城市區(qū)縣集合,。城市區(qū)縣集合是很多個(gè)區(qū)縣的集合,,所以區(qū)縣類也是一個(gè)實(shí)體類包括2個(gè)屬性分別為區(qū)縣名和區(qū)縣值。在這里城市類集合綁定到DataGrid中,,區(qū)縣類集合綁定到ComboBox和ListBox中,。

        首先我們建立城市實(shí)體類和區(qū)縣實(shí)體類集合:

/// <summary>
/// 城市實(shí)體類
/// </summary>
public class City
{
private string cityName;
private string cityNum;
private List<Combo> comboboxList;
/// <summary>
/// 城市名
/// </summary>
public string CityName
{
get { return cityName; }
set { cityName = value; }
}
/// <summary>
/// 城市電話區(qū)號(hào)
/// </summary>
public string CityNum
{
get { return cityNum; }
set { cityNum = value; }
}
/// <summary>
/// 城市區(qū)縣類集合
/// </summary>
public List<Combo> ComboboxList
{
get { return comboboxList; }
set { comboboxList = value; }
}
}
/// <summary>
/// ComboBox需要綁定的類
/// </summary>
public class Combo
{
private string name;
private string value;
/// <summary>
/// 區(qū)縣名
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
}
/// <summary>
/// 區(qū)縣值
/// </summary>
public string Value
{
get { return this.value; }
set { this.value = value; }
}
}

        然后我們?cè)诔跏蓟鞘蓄惖募螸ist<>代碼如下:

//實(shí)例化City類集合
List<City> cityList = new List<City>()
{
new City()
{
CityName="成都",
CityNum="028",
ComboboxList=new List<Combo>()
{
new Combo(){ Name="武侯區(qū)", Value="28"},
new Combo(){ Name="青羊區(qū)", Value="281"},
new Combo(){ Name="成華區(qū)", Value="283"},
new Combo(){ Name="高新區(qū)", Value="282"},
new Combo(){ Name="金牛區(qū)", Value="284"}

}
},
new City()
{
CityName="北京",
CityNum="010",
ComboboxList=new List<Combo>()
{
new Combo(){ Name="朝陽區(qū)", Value="10"},
new Combo(){ Name="海淀區(qū)", Value="103"},
new Combo(){ Name="崇文區(qū)", Value="104"},
new Combo(){ Name="豐臺(tái)區(qū)", Value="105"},
new Combo(){ Name="東城區(qū)", Value="120"}

}
}
};

         最后  this.ShowCityList.ItemsSource = cityList;將城市類集合綁定到DataGrid的ItemsSource上面。下面我們來觀看DataGrid的XAML代碼,,在這里主要是在DataGrid的DataGridTemplateColumn.CellTemplate模板下面添加DataTemplate數(shù)據(jù)模板,,在這個(gè)模板下面添加一個(gè)ComboBox或者ListBox控件,ComboBox和ListBox的ItemsSource綁定區(qū)縣類集合的ComboboxList屬性( ItemsSource="{Binding ComboboxList}"),。當(dāng)然這樣綁定下來顯示的名稱是不正確的,。所以ComboBox控件還需要添加ComboBox.ItemTemplate模板,此模板內(nèi)部在綁定一個(gè)TextBlock控件,,此控件的Text屬性綁定區(qū)縣類的Name屬性(Text="{Binding Name}"),。

<sdk:DataGrid HorizontalAlignment="Left" AutoGenerateColumns="False" Margin="28,71,0,0" Name="ShowCityList" VerticalAlignment="Top" Height="271" Width="324" >
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="城市" Binding="{Binding CityName}" IsReadOnly="True" Width="108"/>
<sdk:DataGridTemplateColumn Header="區(qū)縣">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Width="80" Height="24" ItemsSource="{Binding ComboboxList}" SelectionChanged="ComboBox_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Width="80" Text="{Binding Name}" ></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Header="區(qū)縣級(jí)別">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ListBox Width="80" ItemsSource="{Binding ComboboxList}" >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Width="80" Text="{Binding Name}"></TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>

        在ComboBox中,我添加了一個(gè)事件SelectionChanged="ComboBox_SelectionChanged"來捕捉當(dāng)ComboBox改變選項(xiàng)之后獲取ComboBox的值,。下面請(qǐng)看ComboBox_SelectionChanged的事件處理代碼:

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ComboBox combobox = sender as ComboBox;
//選擇到的項(xiàng)轉(zhuǎn)化為類Combo,。
Combo combo = combobox.SelectedValue as Combo;
MessageBox.Show(combo.Name+"的區(qū)號(hào)是:"+combo.Value);
}

        注意:使用ComboBox.SelectedValue獲取到的是實(shí)體類Combo。

        本例采用VS2010+Silverlight4.0編寫,,點(diǎn)擊 SLDataTemplate.rar 下載實(shí)例源碼,,下面大家看效果圖:


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多