バインドされていないコンボボックスがあります。アプリケーションが実行されていないときは、何も入力されません。データはlinqからsqlクラスに渡され、その後私はオブジェクトのカスタムリストにロールバックします。私は、このリストには、適切な時点で、それが拘束力のある問題でなければならないということを確認できます。私はデータテンプレートが行く方法かもしれないと疑っていますが、真実にこの状況にそれをどのように適用するかはわかりません。WPFコンボボックスがバインドされていません。
カスタムオブジェクト(モデル)
namespace IhsDataSync.Models.Config
{
public class StoredActionsModel : BaseModel
{
private int _storedActionID;
public int StoredActionID
{
get { return _storedActionID; }
set { _storedActionID = value; OnPropertyChanged("StoredActionID"); }
}
private string _name;
public string Name
{
get { return _name; }
set { _name = value; OnPropertyChanged("Name"); }
}
private string _text;
public string Text
{
get { return _text; }
set { _text = value; OnPropertyChanged("Text"); }
}
private bool _selected;
public bool Selected
{
get { return _selected; }
set { _selected = value; OnPropertyChanged("Selected"); }
}
}
}
ビューモデル
public static List<StoredActionsModel> StoredActionsList = ActionLinq.buildStoredActions(); // Grabs list from data access layer
private List<StoredActionsModel> _storedActions = StoredActionsList;
public List<StoredActionsModel> StoredActions
{
get { return _storedActions; }
set {
if (value != _storedActions)
{
_storedActions = value; OnPropertyChanged("StoredActions"); }
}
}
buildStoredActions()
public List<StoredActionsModel> buildStoredActions()
{
List<StoredActionsModel> storedActions = new List<StoredActionsModel>();
var sa = getStoredActions();
foreach (var a in sa)
{
bool selected = false;
if(a.Name == "Default Label"){
selected = true;
}
storedActions.Add(new StoredActionsModel { StoredActionID = a.StoredActionID, Name = a.Name, Text = a.Text, Selected = selected });
}
return storedActions;
}
ここでXAML
<ComboBox DockPanel.Dock="Top" Background="White" FontWeight="Bold" ItemsSource="{Binding Path= StoredActions.Text}" SelectedIndex="0">
IVEは、選択したとして最初のアイテムを使用するように言いました。これは私の最初の束縛が働くかどうかを調べるためのテストでした。私たちが知っている通り、それはそうではありません。
最終的には、選択されたアイテムは、少なくともデフォルトの選択されたアイテムとして使用することを選択したStoredActionsのboolプロパティによって決定されます。
この例のコンボボックスに何も入力されていない理由を誰かが教えてもらえますか?さらに、誰かが私が選択したアイテムのために私の選択されたプロパティを利用するのを助けることができる?これはデータテンプレートがどこに来るのでしょうか?
p.s.かなりwWPFとC#の新しいので、私はこれの6歳の説明が必要な場合があります。
!私が選択したプロパティをStoredActionsでどのように活用して、最初の選択がMy Defaultであるか、または選択されたものに基づいてそれぞれのプロパティをtrueまたはfalseに変更する方法についての考えはありますか? xaml要素のようにIsSelected = "Selected" – LCaraway
@LCaraway更新を参照してください、私はそれをカバーすると思います。 –
私はあなたのために別のものを持っています... http://stackoverflow.com/questions/41877466/wpf-change-window-layout-based-on-combo-box-selection-using-mvvm – LCaraway