14-04-17, 02:25 AM
(14-04-17, 12:14 AM)السندبااد كتب :الحمد لله اكتشفت الخطأ:
والكود بعد التصحيح:PHP كود :
root.Children.Cast(Of UIElement)().Where(Function(e) e.GetType() = GetType(Arc)).ToList().ForEach(Sub(e) root.Children.Remove(e))
والآن السؤال الذي يطرح نفسه:
أنت قمت بإضافة Arc للأداة في النافذة عن طريق Dialog
والسؤال:
كيف ممكن عن طريق الكود بيهاند أضيف ذلك في حدث كليك لزر ما مثلاً، أو في حدث اللود للنافذة
؟!؟!؟
اولا: نعطي Name للـ GeneralBorder الحاضن للـ DonutChart
ثانيا: الوصول الى الـ Conent تبعه من خلال الكود :
PHP كود :
//DashboardPage.cs
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
DonutChart chart = ((Grid)chartGeneralBorder.ContentObject).Children.Cast<FrameworkElement>()
.Where(a => a.GetType() == typeof(DonutChart)).Single() as DonutChart;
chart.Categories.Add(new Usercontrols.DonutCategory()
{
Name = "Visits",
Color = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF60C6CF")),
Percent = 40
});
chart.Categories.Add(new Usercontrols.DonutCategory()
{
Name = "Members",
Color = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF989CFF")),
Percent = 25
});
chart.Categories.Add(new Usercontrols.DonutCategory()
{
Name = "Sales",
Color = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF59C5A0")),
Percent = 23
});
chart.Categories.Add(new Usercontrols.DonutCategory()
{
Name = "Lose",
Color = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFF35958")),
Percent = 12
});
}
هذا احد الاساليب .
اما الطريقة المرنة هي باستعمال الـ Binding للـ Categories Property واساندها لـ ViewModel وهذا مايسمى بنمط MVVM

