[英]WPF ListView ItemTemplate questions
假設我有以下類層次結構:
public static class Constants
{
public enum MyEnum
{
Value1 =0,
Value2,
Value3
}
}
public class Data : INotifyPropertyChanged
{
public Data(string name, ushort id, Constants.MyEnum e)
{
DataName = name;
DataId = id;
DataEnum = e;
}
#region Properties
// get / set implementation not shown
public string DataName;
public ushort DataId;
public Constants.MyEnum DataEnum;
#endregion
// INotifyPropertyChanged implementation not shown
// Fields implementation not shown
}
public class DataContainer
{
public DataContainer()
{
ContainedData = new ObservableCollection<Data>();
ContainedData.Add(new Data("data1", 1, Constants.MyEnum.Value1));
ContainedData.Add(new Data("data2", 2, Constants.MyEnum.Value2));
ContainedData.Add(new Data("data3", 3, Constants.MyEnum.Value3));
}
public ObservableCollection<Data> ContainedData;
}
我想將DataContainer的ContainedData數據綁定到ListView並創建一個包含以下內容的ItemTemplate:
我的目標 :
問題:
要將MyEnum值轉換為ItemsControl(如ComboBox),請參閱http://blogs.msdn.com/wpfsdk/archive/2007/02/22/displaying-enum-values-using-data-binding.aspx 。 要在ListView中的DataTemplate中顯示它,您將使用CellTemplate屬性:
<DataTemplate x:Key="DataEnumTemplate">
<ComboBox ItemsSource="..." SelectedItem="{Binding DataEnum, Mode=TwoWay}" />
</DataTemplate>
<GridViewColumn CellTemplate="{StaticResource DataEnumTemplate" />
(ItemsSource是根據鏈接的文章)。
重新數據類型,TextBox.Text綁定將自動在文本字符串和ushort之間進行轉換,如果字符串不可轉換(例如“abc”),它將自動發出驗證錯誤信號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.