שינוי רוחב עמודה בDATAGRID לפי שינוי רוחב ב-DATAGRID אחר
-
אני מעוניין לשים DATAGRID אחד על השני בתוך "סטייק-פנל" עם אותו מספר עמודות - (אני מוסיף אותם בזמן ריצה) וכשהמשתמש משנה את גודל העמודה בעליון ישתנה התחתון בהתאמה לעמודה המקבילה.
כיון שבינדינג לא עובד בעמודות משום מה וגם אין אירוע בעת שינוי גודל עמודה. לכן אני נצרך לפתרון משני.
תודה רבה מראשפורסם במקור בפורום CODE613 ב26/01/2014 14:35 (+02:00)
-
אתה יכול להשתמש ב ElementName כדי להשיג את רוחב העמודה
בדוגמא הבאה הטקסט-בלוקים זזים לפי רוחב העמודות בדטה-גריד, הרץ ותראה:<StackPanel Margin="12,12,12,44"> <DataGrid AutoGenerateColumns="False" Height="255" Margin="0" Name="datagrid1" ItemsSource="{Binding}" RowDetailsVisibilityMode="Visible"> <DataGrid.Columns> <DataGridTextColumn Width="150" Header="Name" Binding="{Binding Path=Name}" /> <DataGridTextColumn Width="100" Header="Unit Price" Binding="{Binding Path=UnitPrice, UpdateSourceTrigger=PropertyChanged}"/> <DataGridTextColumn Width="100" Header="Amount" Binding="{Binding Path=Amount, UpdateSourceTrigger=PropertyChanged}"/> <DataGridTextColumn Width="100" Header="Total" Binding="{Binding Path=Total, StringFormat=C}" IsReadOnly="True" /> </DataGrid.Columns> </DataGrid> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="{Binding ElementName=datagrid1, Path=RowHeaderActualWidth}"/> <ColumnDefinition Width="{Binding ElementName=datagrid1, Path=Columns[0].ActualWidth}"/> <ColumnDefinition Width="{Binding ElementName=datagrid1, Path=Columns[1].ActualWidth}"/> <ColumnDefinition Width="{Binding ElementName=datagrid1, Path=Columns[2].ActualWidth}"/> </Grid.ColumnDefinitions> <TextBlock Grid.Column="2">Count:</TextBlock> <TextBlock Grid.Column="3" >Avg:</TextBlock> </Grid> </StackPanel>
פורסם במקור בפורום CODE613 ב26/01/2014 15:46 (+02:00)
-
הבעיה היא שהDataGridColumn מוכן להגיד מה רוחבו אבל לא מוכן שיגידו לו מה יהיה רוחבו...
כך שהדוגמא של רחמים עובדת ואילו זאת לא תעבוד:<StackPanel > <DataGrid AutoGenerateColumns="False" Height="50" Name="datagrid1"> <DataGrid.Columns> <DataGridTextColumn Header="Name" Width="150" /> </DataGrid.Columns> </DataGrid> <DataGrid AutoGenerateColumns="False" > <DataGrid.Columns> <DataGridTextColumn Header="Name" Width="{Binding ElementName=datagrid1, Path=Columns[0].ActualWidth}" /> </DataGrid.Columns> </DataGrid> </StackPanel>
פורסם במקור בפורום CODE613 ב26/01/2014 17:14 (+02:00)
-
-
אכן זה התשובה.. כי ב-WPF וכן בWINRT כל השדות באובייקטים מסוג DEPENDENCI הם פתוחים ואפשר לעשות עליהם ישירות אירועים ולכן לא טרחו לכל אובייקט ליצור לו אירועים מוכנים...
פורסם במקור בפורום CODE613 ב28/01/2014 20:53 (+02:00)