0
我想在動態組合框中選擇1項,因爲我在DataGrid行中有很多組合框。我嘗試使用SelectedValue或SelectedIndex,但它仍然無法正常工作。請幫幫我 。我的代碼在這裏在組合框中動態設置選定的項目wpf
XAML文件:
<DataGridTemplateColumn Header="DataType_Id">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Loaded="cbxDataType_Loaded" Name="cbxDataType" SelectionChanged="ComboBox_SelectionChanged"
SelectedValuePath="Id"
DisplayMemberPath="Name"
ItemsSource="{Binding Path=masterData}"
SelectedValue="{Binding Path=ComboboxObj,Mode=TwoWay}"
SelectedItem="{Binding Path=seletedItem}"
DataContext="{Binding}">
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
ComboBox對象
public class ComboboxObj
{
public Guid Id { get; set; }
public string Name { get; set; }
//public string selectedItem { get; set; }
}
DataGrid行對象
public class ListDataExtract
{
public SP_List_Details Detail { get; set; }
public List<ComboboxObj> masterData { get; set; }
public ComboboxObj seletedItem { get; set; }
}
主要工藝流程
for (int i = 0; i < lstDetail.Count; i++)
{
ComboboxObj cbxObj = new ComboboxObj();
ListDataExtract extract = new ListDataExtract();
extract.Detail = lstDetail[i];
extract.masterData = lstCbx;
// Create Seleted Item
cbxObj.Id = lstDetail[i].DataType_Id.Value;
cbxObj.Name = findIndexMasterData(lstDetail[i].DataType_Id.Value, lstCbx);
// lstCbx is List Object ComboboxObj
extract.seletedItem = lstCbx[0];
// End Create Seleted Item
lstExtract.Add(extract);
}
DataGridListDetails.ItemsSource = lstExtract;
你的類必須實現INotifyPropertyChanged模式。你可以在網上找到很多文檔。 http://stackoverflow.com/questions/3505716/how-to-use-inotifypropertychanged-correctly-in-wpf-xaml –
謝謝,但我可以寫函數RaisePropertyChanged :( – jonny
我的新問題是「無法評估表達式,因爲當前線程處於堆棧溢出狀態「:( – jonny