как получить доступ к x: name из MVVM viewmodel - PullRequest
0 голосов
/ 16 мая 2019

Я хочу связать данные Microchart из viewmodel для просмотра в моем приложении призмы xamarin

Я попытался связать из бэкэнда c # путем доступа к x: Name и его работоспособности. Но я хочу сохранить всю свою логику вviewmodel.is есть какой-либо способ получить доступ к этому элементу диаграммы из viewmodel.

мой xaml-код

<StackLayout Orientation="Vertical" >
                    <StackLayout Padding="5,3,5,3" >

                        <microcharts:ChartView HeightRequest="300" WidthRequest="200" x:Name="chartView"/>
                    </StackLayout>
                    <StackLayout Padding="5,3,5,3" >

                        <microcharts:ChartView HeightRequest="300" WidthRequest="200" x:Name="chartView1"/>
                    </StackLayout>
                    <StackLayout Padding="5,3,5,3">

                        <microcharts:ChartView HeightRequest="300" WidthRequest="200" x:Name="chartView2"/>
                    </StackLayout>
                </StackLayout>

и мой бэкэнд-код c #

var entries = new List<ChartEntry>
                        {
                            new ChartEntry(200)
                            {
                                Label = "January",
                                ValueLabel = "200",
                                Color = SKColor.Parse("#266489")
                            },
                            new ChartEntry(400)
                            {
                                Label = "February",
                                ValueLabel = "400",
                                Color = SKColor.Parse("#68B9C0")
                            },
                            new ChartEntry(100)
                            {
                                Label = "March",
                                ValueLabel = "100",
                                Color = SKColor.Parse("#90D585")
                            }
                        };
            var chart = new BarChart() { Entries = entries };
            var chart1 = new BarChart() { Entries = entries };
            var chart2 = new PointChart() { Entries = entries };
            // or: var chart = new LineChart() { Entries = entries };
            // or: var chart = new DonutChart() { Entries = entries };
            // or: var chart = new RadialGaugeChart() { Entries = entries };
            // or: var chart = new RadarChart() { Entries = entries };
            this.chartView.Chart = chart;
            this.chartView1.Chart = chart1;
            this.chartView2.Chart = chart2;

я хочу переместитьэтот бэкэнд c # код для viewmodel.и я не знаю, как привязать данные этой диаграммы для просмотра из viewmodel. Спасибо

1 Ответ

0 голосов
/ 16 мая 2019

Вы не можете сделать это.

Доступ к стороне XML можно получить с помощью BindingContext.

  <microcharts:ChartView HeightRequest="300" WidthRequest="200" ValueLabel="{Binding your_prop}" x:Name="chartView"/>
...