這可能有助於
1.Inorder工作的DataTemplate你必須指定itemsource,在這裏我已經限制了一個Stateslist的項目集合。
2.也將Datacontext設置爲ViewModel或CodeBehind作爲datacontext。
3.Datacontext將使用代碼隱藏的StateList屬性集合分發到ListBox的ItemSource
-
public Window1()
{
InitializeComponent();
this.DataContext = this;
LoadData();
}
using viewmodel
public Window1()
{
InitializeComponent();
DataContext = new Window1ViewModel();
LoadData();
}
//MyItemsource Property for listbox
private ObservableCollection<States> _stateslist;
public ObservableCollection<States> StatesList
{
get { return _stateslist; }
set
{
_stateslist = value;
RaisePropertyChanged(() => StatesList);
}
}
// Sample Data Loading
public void LoadData()
{
StatesList = new ObservableCollection<States>();
StatesList.Add(new States
{
StateName = "Kerala"
});
StatesList.Add(new States
{
StateName = "Karnataka"
});
StatesList.Add(new States
{
StateName = "Goa"
});
}
Window1.Xaml
<ListBox ItemsSource="{Binding StatesList}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<CheckBox IsChecked="{Binding IsSelected"} Content="{Binding StateName}" />
<TextBox Text="{Binding TextBoxValue}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
你綁定列表任何數據源?我需要將您的複選框綁定到數據源中的特定屬性。 –
我有一個如何輕鬆地在WPF中創建一個Checked ListBox的例子,它應該有助於http://www.jarloo.com/how-to-create-a-checkedlistbox-in-wpf/ – Kelly