<ContentControl Content="{Binding ViewControl}"
Grid.Row="2"
Grid.ColumnSpan="2"/>
CurrentVM = new MainNewsControlVM();
ViewControl = new MainNewsControl { DataContext = CurrentVM };
public ObservableCollection<News> News { get; set; }
public double FindValue()
{
double step_100 == 100;
double step_10 == 10;
double step == 1;
double X = 1;
double n = 0.1;
double stepX;
double findValue = CalcValue(X);
if (findValue > n)
{
var (stepStart100, stepEnd100) = CalcX(X, 1500, step_100, n);
var (stepStart, stepEnd) = CalcX(stepStart100, stepEnd100, step_10, n);
(stepX, X) = CalcX(stepStart, stepEnd, step, n);
}
return X;
}
private (double, double) CalcX(double stepStart, double stepEnd, double step, double n)
{
bool stopCalc = false;
double prevX = stepStart;
while (stopCalc != true && stepStart <= stepEnd)
{
double findValue = CalcValue(stepStart);
if (findValue >= n)
{
prevX = stepStart;
stepStart += step;
}
else
stopCalc = true;
}
return (prevX, stepStart);
}
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $d);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://cpay.tranzzo.com/api/v1/pos/${POS_ID}/orders/0");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = [
'X-API-AUTH: CPAY ${API_KEY}:${API_SECRET}',
'X-API-KEY: ${ENDPOINTS_KEY}'
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$server_output = curl_exec ($ch);
curl_close ($ch);
<Grid Grid.Row="2" Grid.Column="1" Margin="5">
<StackPanel x:Name="panel2" ScrollViewer.VerticalScrollBarVisibility="Auto">
<ContentControl ContentTemplateSelector="{StaticResource Selector}"
Content="{Binding SelectedItem}"/>
</StackPanel>
</Grid>
class ItemTemplateSelector : DataTemplateSelector
{
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
FrameworkElement element = container as FrameworkElement;
if (item != null)
{
var window = Application.Current.MainWindow;
return
window.FindResource("uc1") as DataTemplate;
}
return null;
}
}
<Window.Resources>
<local:ItemTemplateSelector x:Key="Selector" />
<DataTemplate x:Key="uc1">
<local:UserControl1 />
</DataTemplate>
</Window.Resources>
//ниже в listbox добавил
<ListBox ItemsSource="{Binding DevList}" Grid.Row="1" x:Name="device_list" ItemTemplateSelector="{StaticResource Selector}" />
//далее
<Grid Grid.Row="2" Grid.Column="1" Margin="5">
<StackPanel x:Name="panel2">
<ContentControl ContentTemplate="{StaticResource uc1}"/>
// я думал что здесь появится UC но UC появляется в Listboxe
</StackPanel>
</Grid>
UserControl1 uc = new UserControl1();
uc.Name = text.ToString();
panel2.Children.Add(uc);
<StackPanel x:Name="panel2" ScrollViewer.VerticalScrollBarVisibility="Auto">
<ContentControl Content="{Binding LoadControl}"/>
</StackPanel>
private string selectedItem()
{
string item = this._selectedItem;
NotifyPropertyChanged("LoadControl");
}
public void LoadControl()
{
// тут логика загрузки
}
//UserControlModel
List<string> usList = new List<string>();
NewsModule
-Models
-Views
-ViewModels
работает внутри модуля News, то есть из основной программы я не должен иметь доступ к этой модели, что что я могу сделать из основной программы это вызов модуля. Если же я сделаю public модель News, то в основной программе я могу сделать что то типо
и если через какое то время в модуле News изменится модель по какой то причине получится ошибка, так как поля Title может уже не быть.. поэтому я и думаю как ограничить доступ так, чтобы можно было вызвать этот модуль и не давать излишнего доступа к этому модулю.. нашел такую статью пока не знаю подойдет или нет, надо попробовать