Hier mal ein Beispiel zu einer Prozedur mit Übergabeparameter(Firebird)
CREATE PROCEDURE "DeineProzedur"(iId bigint not null)
returns (CollectionId bigint, CollectionFr bigint)
as
begin
FOR SELECT co.id,
cost.cFrance,
FROM tbl_collection co
JOIN tbl_collectionstatus cost ON cost.collectionstatus = co.collectionstatus
WHERE co.id = :iId
INTO :CollectionId,
:CollectionFr,
DO BEGIN
suspend;
END
END
Dein C# COde
public static List<Collection> GetCollectionInfo(int iId)
{
try
{
using (dbEntities ctx = new dbEntities())
{
return(ctx.ExecuteStoreQuery<Collection>("SELECT * FROM DeineProzedur(%1)").ToList();
}
}......
}
Verstanden?
Besten Dank, hab gestern noch eine alternative herausgefunden, diese wäre aber auch etwas aufwendiger. Ich könnte das eigentliche UserControl auch auf AutoScrollable setzen und das innere Panel händisch von der Größe neu Berechnen. Dies müsste ich halt jedes mal beim Verschieben von Controls machen. Damit wären die positionen Fix. Der Aufwand aber auch etwas höher.
Hast du die Assembly "System.Windows.Forms.DataVisualization.dll" denn auch als Referenz bei deinem Projekt eingebunden (s. http://msdn.microsoft.com/de-de/library/system.windows.forms.datavisualization.charting.chart.aspx)
Das fehlt ein "s" im Fontnamen: "Microsoft Sans Serif"
Sonst wird halt ein Default-Font gewählt.
Edit: Um nicht explizit einen Fontnamen zu wählen, der evtl. auf dem System nicht vorhanden ist, kann man auch einfach die FontFamily.GenericSansSerif-Eigenschaft benutzen. Für eine bestimmte Größe und/oder Style dann z.B.
new Font(FontFamily.GenericSansSerif, 10);
new Font(FontFamily.GenericSansSerif, 10, FontStyle.Italic);
verwenden.
Desweiteren gibt es noch FontFamily.GenericMonospace sowie FontFamily.GenericSerif...
Hallo,
ich versuche seit Neuestem das MVVM-Pattern für meine Windows 8 App / Windows 8 Phone App zu verwenden.
Leider bin ich auf das Problem gestoßen, dass ich bei Klick auf einem Button nicht die View in den ContentController laden kann. Meine Struktur sieht so aus:
Projekt Portable Class Library (Abgekürzt Mvvm.PCL)
MainViewModel.cs
ViewModelLocator.cs
Projekt Windows 8 Phone (Abgekürzt Mvvm.Phone) (deaktiviert)
Projekt Windows 8 App (Abgekürzt Mvvm.Store)
MainView.xaml
SecondView.xaml
ThirdView.xaml
MainPage.xaml
MainPage.xaml beinhaltet eine AppBar mit Buttons und einen ContentController. Der ContentController soll die Views beinhalten.
Das ist die MainPage.xaml
Hier sieht man, dass ich bei den Buttons ein Command versuche (welches jedoch nicht funktioniert). Bei Klick auf dem Button soll sich die View im ContentControl dementsprechend anpassen (indem es in die MainViewModel.cs geht).
Beim Laden der MainPage soll als Anfangs-View die MainView.xaml verwendet werden (funktioniert auch nicht).
Mehr kann jedoch in der ReadMe.txt, welche unten als Download vorhanden ist, gelesen werden.
<Page
x:Name="pageRoot"
x:Class="Mvvm.Store.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Mvvm.Store"
xmlns:common="using:Mvvm.Store.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
DataContext="{Binding Main, Source={StaticResource Locator}}">
<Grid Style="{StaticResource LayoutRootStyle}">
<Grid.RowDefinitions>
<!-- View -->
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- ContentControl should have MainView as first page on startup -->
<ContentControl Name="MyContentControl" Grid.Row="0" Content="{Binding CurrentView}" IsTabStop="False" Margin="10" />
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="ApplicationViewStates">
<VisualState x:Name="FullScreenLandscape"/>
<VisualState x:Name="Filled"/>
<VisualState x:Name="FullScreenPortrait">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemGridView" Storyboard.TargetProperty="Padding">
<DiscreteObjectKeyFrame KeyTime="0" Value="96,136,86,56"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Snapped">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="pageTitle" Storyboard.TargetProperty="Style">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedPageHeaderTextStyle}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemListView" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemGridView" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
<!-- Bottom AppBar -->
<Page.BottomAppBar>
<AppBar IsOpen="True" x:Name="botAppBar" VerticalContentAlignment="Bottom" VerticalAlignment="Bottom">
<GridView
x:Name="itemGridView"
AutomationProperties.AutomationId="ItemsGridView"
AutomationProperties.Name="Items"
TabIndex="1"
Grid.Row="1"
Grid.ColumnSpan="2"
VerticalAlignment="Top"
HorizontalAlignment="Left"
SelectionMode="Single"
IsSwipeEnabled="false"
IsItemClickEnabled="True" MaxHeight="100">
<!--"-->
<Button Command="{Binding DisplayView}" CommandParameter="SecondView" Style="{StaticResource MyMenue}">
<Button.Content >
<StackPanel>
<TextBlock Text="SecondView" TextAlignment="Center"></TextBlock>
</StackPanel>
</Button.Content>
</Button>
<Button Command="{Binding DisplayView}" CommandParameter="ThirdView" Style="{StaticResource MyMenue}">
<Button.Content >
<StackPanel>
<TextBlock Text="ThirdView" TextAlignment="Center"></TextBlock>
</StackPanel>
</Button.Content>
</Button>
</GridView>
</AppBar>
</Page.BottomAppBar>
</Page>
Meine App.xaml , wo das ViewModel der Portable Class Library verwendet wird.
<?xml version="1.0" encoding="utf-8"?>
<Application x:Class="Mvvm.Store.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Mvvm.Store"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:Mvvm.PCL.ViewModel"
mc:Ignorable="d">
<Application.Resources>
<ResourceDictionary>
<vm:ViewModelLocator p7:Key="Locator" p8:IsDataSource="True"
xmlns:p8="http://schemas.microsoft.com/expression/blend/2008"
xmlns:p7="http://schemas.microsoft.com/winfx/2006/xaml" />
<ResourceDictionary.MergedDictionaries>
<!--
Styles that define common aspects of the platform look and feel
Required by Visual Studio project and item templates
-->
<ResourceDictionary Source="Common/StandardStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
Zuletzt noch das MainViewModel.cs , wo die Views gesetzt werden sollen.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows.Input;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
#if NETFX_CORE
using Mvvm.Store.Views;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
#endif
namespace Mvvm.PCL.ViewModel
{
/// <summary>
/// This class contains properties that the main View can data bind to.
/// <para>
/// Use the <strong>mvvminpc</strong> snippet to add bindable properties to this ViewModel.
/// </para>
/// <para>
/// You can also use Blend to data bind with the tool's support.
/// </para>
/// <para>
/// See http://www.galasoft.ch/mvvm
/// </para>
/// </summary>
public class MainViewModel : ViewModelBase, INotifyPropertyChanged
{
/// <summary>
/// Initializes a new instance of the MainViewModel class.
/// </summary>
public MainViewModel()
{
#if NETFX_CORE
DisplayView = new RelayCommand<string>(DisplayViewCommandExecute);
#endif
}
#if NETFX_CORE
#region Commands
public RelayCommand<string> DisplayView { get; private set; }
#endregion
#region CurrentView Property
public const string CurrentViewPropertyName = "CurrentView";
private Page _currentView;
public Page CurrentView
{
get { return _currentView; }
set
{
if (_currentView == value)
return;
_currentView = value;
RaisePropertyChanged(CurrentViewPropertyName);
}
}
#endregion
private void DisplayViewCommandExecute(string viewName)
{
switch (viewName)
{
case "SecondView":
CurrentView = new SecondView();
break;
case "ThirdView":
CurrentView = new ThirdView();
break;
}
}
#endif
}
}
Problem: Die Commands
Command="{Binding DisplayView}" CommandParameter="SecondView"
funktionieren nicht und ich weiß auch nicht, wie ich beim Starten der App das ContentControl mit der MainView.xaml befülle.
Mein Programm http://www10.zippyshare.com/v/29730402/file.html (Visual Studio 2012 benötigt (nicht Express))
Hi, ich kenne die RenderTransform (Render-Offset) und LayoutTransform (Koordination-Transformation) von WPF, aber wozu bzw. was macht die VisualTransform der Visual-Class? Leider findet man dazu wenig im Internet.
So, hab mal das folgende benutzt:
http://www.codeproject.com/Articles/7388/A-Simple-C-Wrapper-for-the-AviFile-Library
Ist aber auch leider langsam...
Hab mal per Threads versucht die Arbeit des Extrahierens auf verschiedenen CPU-Kernen zu verteilen. Problem: es entstehen Artefakte im Video. Kommt das eventuell durch mehrere Zugriffe auf die eine Videodatei?
Wieso nicht?
Ich habe den Pointer auf eine Adresse und möchte von dort auslesen und kann es eben nicht. Wäre ich Vollprofi und allwissend müsste ich ja nicht fragen
Hallo.
Danke für deine Antwort PuppetMaster2k.
Ich habe nun eine statische Klasse Bootstrapper. Diese beinhaltet eine Methode Load. Darin registriere ich nun meine Services und mache sonstige Initialisierungen.
Die LoadMethode rufe ich dann im Codebehind der MainView auf. Das ist dann die einzige Methode - neben InitializeComponent - im Codebehind.
Das ist nicht das Problem. Ich steppe ja drüber und hab im Eventhandler eines Buttons im Window einen Breakpoint. Sobald der Button gedrückt wird bleibt der Debugger auch stehen, aber eben ohne Sourcecode sondern nur im Disassembly. Obwohl das alles mein eigener Code ist. Also nicht das Framework.
Kennt jmd. von euch einen XML Pretty Printer, idealerweise Open-Source und in C# (bzw. einer .NET Sprache) geschrieben, der halbwegs gut konfigurierbar ist?
Was das Ding können sollte:
* Text in XML Elementen umbrechen
* Text in XML Elementen einrücken (fix, bzw. aligned mit dem Text von "gleichnamigen" Elementen die davor kommen)
* "Try to fit on single line"
* Unterschiedliche Regeln für unterschiedliche Elemente
* Primäre Elemente sortieren
* Leerzeilen nach bestimmten Regeln einfügen
uswusf.
Im Prinzip soll das Ding ein XML Dokumente nach bestimmten Regeln formatieren können, so dass es angenehm zu lesen ist. Konkret geht es dabei um auto-formatting von ECMA XML documentation comments.
Hallo zusammen ...
Eine Combo soll mir als Auswahl für eine Quelle dienen:
<ComboBox DockPanel.Dock="Top" Margin="4,1,8,0" SelectedIndex="0" Padding="2" x:Name="SourceCombo" SelectionChanged="SourceCombo_SelectionChanged">
<ComboBoxItem Name="SourceZutaten" Content="Zutaten" />
<ComboBoxItem Name="SourceRezepte" Content="Rezepte" />
Nun versuche ich mittels Trigger die ItemSource Property einer ListView je nach Auswahl ändern:
<ListView MouseMove="OnListViewMouseMove" MouseDown="OnListViewMouseDown" BorderBrush="{x:Null}" Name="bekannteZutatenListView" SelectionMode="Single">
<ListView.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected, ElementName=SourceZutaten, Converter={StaticResource myDebugConverter}, ConverterParameter=Source}" Value="true">
<Setter Property="ListView.ItemContainerStyle" Value="{StaticResource myLittleZutatenItemStyle}" />
<Setter Property="ListView.ItemsSource" Value="{Binding Path=ZutatenCollection, ElementName=ThisUC.IMainWindow.IZutatManager, UpdateSourceTrigger=PropertyChanged}" />
</DataTrigger>
<!--<DataTrigger Binding="{Binding Path=IsSelected, ElementName=SourceRezepte}" Value="True">
<Setter Property="ListView.ItemContainerStyle" Value="{x:Null}" />
<Setter Property="ListView.ItemsSource" Value="{Binding Path=rezeptCollection, ElementName=ThisUC.IMainWindow, UpdateSourceTrigger=PropertyChanged}" />
</DataTrigger>-->
</Style.Triggers>
</Style>
</ListView.Style>
</ListView>
Mittels DebugConverter habe ich versucht das Problem zu analysieren, komme aber nicht dahinter warum der Trigger nicht greift. .... oder habt ihr vielleicht eine andere Lösung ... wie würdet ihr das lösen ?
Hallo Leute,
aktuell reagiere ich auf ein Tastendruck über ein GamePad noch folgendermaßen:
using SlimDX.DirectInput;
private void timer1_Tick(object sender, EventArgs e)
{
GameControllerState state = controller.GetState();
progressBar1.Value = state.X; // Joystick
if (state.IsPressed(0)) // Tasten
{
// Tue dies
}
Ihr werdet mir wohl zustimmen: Es ist in einer sehr schlechten Art gelöst worden.
Statt immer abzufragen, ob die Taste gedrückt wurde,
würde ich lieber auf das Ereignis selbst reagieren.
Leider finde ich beim SlimDX nichts dazu.
Mag mir wer unter die Arme greifen und mir ggf. vielleicht ein kleines Snippet posten, wie man ein Listener bewerkstelligen kann oder mich wenigstens in die richtige Richtung lenken?
Mfg Fragr.
Nur ging es da um das Scrollverhalten. Ich stand mit der Maus über der inneren und habe gescrollt und was ich wollte war, dass sich die äußere scrollt
Das ist nicht das Problem. Die Inneren Items binden auf den selben SelectedIndex.
Und im ItemsControl.Template erstellst du ein ControlTemplate mit Scrollviewer um den Itemspresenter. Fertig.
Aber vieleicht kann mir noch jemand bei meinem Problem helfen.