나는 전혀 바인딩되지 않는 콤보 상자가 있습니다. 응용 프로그램이 실행될 때 아무 것도 채워지지 않습니다. 데이터는 linq에서 sql 클래스로 전달되어 객체의 사용자 정의 목록으로 이동합니다. 이 목록이 채워지는 적절한 시간에 확인할 수 있으므로 바인딩과 관련된 문제 여야합니다. 나는 데이터 템플릿이 갈 수있는 방법일지도 모른다고 의심하지만, 사실이 상황에 어떻게 적용 할 지 모르겠다.WPF 콤보 상자가 바인딩되지 않음
사용자 정의 개체 (모델)
namespace IhsDataSync.Models.Config
{
public class StoredActionsModel : BaseModel
{
private int _storedActionID;
public int StoredActionID
{
get { return _storedActionID; }
set { _storedActionID = value; OnPropertyChanged("StoredActionID"); }
}
private string _name;
public string Name
{
get { return _name; }
set { _name = value; OnPropertyChanged("Name"); }
}
private string _text;
public string Text
{
get { return _text; }
set { _text = value; OnPropertyChanged("Text"); }
}
private bool _selected;
public bool Selected
{
get { return _selected; }
set { _selected = value; OnPropertyChanged("Selected"); }
}
}
}
보기 모델
public static List<StoredActionsModel> StoredActionsList = ActionLinq.buildStoredActions(); // Grabs list from data access layer
private List<StoredActionsModel> _storedActions = StoredActionsList;
public List<StoredActionsModel> StoredActions
{
get { return _storedActions; }
set {
if (value != _storedActions)
{
_storedActions = value; OnPropertyChanged("StoredActions"); }
}
}
buildStoredActions()
public List<StoredActionsModel> buildStoredActions()
{
List<StoredActionsModel> storedActions = new List<StoredActionsModel>();
var sa = getStoredActions();
foreach (var a in sa)
{
bool selected = false;
if(a.Name == "Default Label"){
selected = true;
}
storedActions.Add(new StoredActionsModel { StoredActionID = a.StoredActionID, Name = a.Name, Text = a.Text, Selected = selected });
}
return storedActions;
}
XAML 여기
<ComboBox DockPanel.Dock="Top" Background="White" FontWeight="Bold" ItemsSource="{Binding Path= StoredActions.Text}" SelectedIndex="0">
필자는 선택으로 첫 번째 항목을 사용하도록했다. 이것은 초기 바인딩이 작동하는지 테스트하기위한 것입니다. 우리가 아는 바로는 그렇지 않습니다.
궁극적으로 선택한 항목이 StoredActions의 bool 속성에 의해 결정되는데, selected라는 것은 적어도 기본 선택된 항목으로 사용하고 싶습니다.
누군가이 콤보 상자에 아무 것도 채워지지 않는 이유를 말할 수 있습니까? 또한 누군가가 내가 선택한 항목에 대해 내가 선택한 속성을 활용하도록 도울 수 있습니까? 데이터 템플릿이 들어오는 곳입니까?
p.s. 상당히 wWPF와 C#에 익숙하지 않으므로이 6 년 된 설명이 필요할 수도 있습니다.
! 내가 선택한 속성을 StoredActions에서 어떻게 활용하여 초기 선택이 내 기본값이되거나 선택한 속성을 기준으로 해당 속성을 각각 true 또는 false로 변경할 수 있습니까? xaml 요소처럼 IsSelected = "Selected" – LCaraway
@LCaraway 업데이트를 참조하십시오, 나는 그것을 커버한다고 생각합니다. –
다른 하나가 있습니다. http://stackoverflow.com/questions/41877466/wpf-change-window-layout-based-on-combo-box-selection-using-mvvm – LCaraway