테이블 목록을 가진 트리 뷰를 표시해야하고 사용자가 테이블을 선택하면 열 목록이있는 표가 표시되어야합니다. & 행에 DataGridCheckboxColumns가 있어야하며 사용자가 다음을 수행 할 수 있습니다. 체크 박스 열을 편집하십시오.동적 열과 행이있는 DataGrid
현재이 작업을 수행하는 데 기술적 인 문제가 있습니다.
데이터 테이블이 업데이트되었지만 그리드에 할당해도 행이 표시되지 않지만 트리보기 선택이 변경되는 경우 행이 표시되지 않고 UI에 반영되지 않습니다. 이 일을 정말로 도와주세요. 응급 상황입니다.
미리 감사드립니다. 아래의 코드 스 니펫을 찾으십시오.
//DataGrid Add Columns and Rows
private void DataGridInitialize(string tableName)
{
DataSet ds = selectionViewBAL.GetColumnNames(tableName);
DataSet dataset = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Functions");
dt.Columns.Add("AllColumns");
foreach (var row in ds.Tables[0].Rows)
{
string rowname = ((System.Data.DataRow)(row)).ItemArray[0].ToString();
dt.Columns.Add(rowname);
}
int i = 0;
foreach (DataColumn col in dt.Columns)
{
if (i == 0)
{
dataGrid1.Columns.Add(
new DataGridTextColumn
{
Header = "Functions",
Binding = new Binding(string.Format("[{0}]", "Functions"))
});
}
else
{
dataGrid1.Columns.Add(
new DataGridCheckBoxColumn
{
Header = col.ColumnName,
Binding = new Binding(string.Format("[{0}]", col.ColumnName))
});
}
i++;
}
DataSet fetchFunctionNames = new DataSet();
fetchFunctionNames = selectionViewBAL.GetListOfFunctions(); //FetchFunctions();
DataRow dr = dt.NewRow();
var itemsArray = new object[dataGrid1.Columns.Count];
for (int j = 0; j < fetchFunctionNames.Tables[0].Rows.Count; j++)
{
itemsArray[0] = fetchFunctionNames.Tables[0].Rows[j].ItemArray[1];
for (i = 1; i < itemsArray.Length; i++)
{
itemsArray[i] = true;
}
dr.ItemArray = itemsArray;
dt.Rows.Add(dr);
dr = dt.NewRow();
}
dataGrid1.DataContext = dt;
}
나는 DT의 모든 것을 볼 수 있어요,하지만 난 데이터 그리드 동일한를 할당 할 수 없습니다 그리고 난 그래도 편집을 기울인다.
<DataGrid Grid.Row="0" Grid.ColumnSpan="4" Grid.Column="1"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
HorizontalAlignment="Left" VerticalAlignment="Top" Margin="7,9,0,0"
Name="dataGrid1" ItemsSource="{Binding}">
제가 바인딩에 주로있는 거짓말을 알고, 제발 도와주세요, 출력 첨부 된 이미지처럼 보이지만 제대로 바인딩에 도와주세요. – user1095239