Silverlight DataGrid에 열을 추가하려고하지만 문제가 있습니다. (내가 프리즘 사용하고 있습니다) 내보기에 내가 생성자에서 아무 문제 열을 추가 할 수 있습니다,이 잘 작동합니다 - 그러나 DataContext를가 열이 추가 설정 될 때 나는 열을 추가하려고하면Silverlight DataGrid를 사용하는 동적 열
public MyView()
{
InitializeComponent();
myDatagrid.Columns.Add(new DataGridCheckBoxColumn() { Header = "HELLO!" });
}
(디버깅 할 때 Columns.Count 증가 볼 수 있지만 새 열 렌더링되지 않습니다.
public IMyViewModel ViewModel
{
get { return DataContext as IMyViewModel ; }
set
{
DataContext = value;
myDatagrid.Columns.Add(new DataGridCheckBoxColumn() { Header = "HELLO!" });
}
}
이제 MVVM 패러다임을 존중하지 않는다는 것을 알고 있습니다. 이것은 코드 작성 방법이 아니지만 DataGrid에 바인딩 된 ItemSource가 변경 될 때 열을 설정하기 위해 View에서 이와 같은 몇 가지 진절머리가 나는 코드가 필요합니다. 사용자 입력에 따라 열이 커지고 축소되는 것을 볼 수 있으며 열을 추가/제거하고 이에 따라 바인딩을 설정해야합니다.
는 또한 시도 다음은 UI 스레드에서 실행되지 않았기 때문에 그것이 생각 -
은myDatagrid.Dispatcher.BeginInvoke(() =>
{
myDatagrid.Columns.Add(new DataGridCheckBoxColumn() { Header = "HELLO!" });
});
나는 효과가 없다고 생각합니다. 동일한 코드 줄을 실행하는 click 이벤트 처리기를 사용하여 단추를 사용자 정의 컨트롤에 추가하려고 시도했지만 열을 추가하지 않아도되었습니다. – jameskind